栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬虫学习34

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫学习34

python爬虫学习34

目录
    • python爬虫学习34
      • 九、parsel 库的使用其一
        • 9-1、parsel 库的下载
        • 9-2、初始化
        • 9-3 提取文本

今天呢就进入到爬虫网页数据解析提取的最后一个小节,与大家一同学习parsel库的使用,由于博主本身对Web编程不甚了解,所以CSS选择就浅显的了解了一下,pyquery库大家感兴趣就自己学习吧。

九、parsel 库的使用其一

前几节我们共同学习了Xpath语言,一同了解了lxml与beautiful soup库的基本用法。现在不管是使用Xpath还是CSS选择器,我们都已经能够处理绝大多数的内容提取工作了。

在使用方法时,有时使用Xpath会更简单,有时使用CSS会更加方便,那么这个时候我们希望将两者结合起来,parsel库就是一个不错的选择。

9-1、parsel 库的下载

parsel这个库可以解析HTML与XML,并支持Xpath与CSS选择器对内容的提取和修改,同时也支持正则表达式的提取功能。parsel是Python最流行的爬虫框架scrapy的底层支持。

下载安装库

pip install parsel
9-2、初始化

通常我们需要使用selector类声明一个selector对象,对一段待处理的html文本进行初始化:

from parsel import selector

html = """

    
        hello
    
			
  • 首页
  • 我的书架
  • 玄幻小说
  • 修真小说
  • 都市小说
  • 穿越小说
  • 网游小说
  • 科幻小说
  • 排行榜单
  • 完本小说
  • 全部小说
""" selector = selector.Selector(text=html)

在初始化之后我们就可以使用之前学会的Xpath或caa方法进行选择了:

from parsel import selector

html = """

    
        hello
    
			
  • 首页
  • 我的书架
  • 玄幻小说
  • 修真小说
  • 都市小说
  • 穿越小说
  • 网游小说
  • 科幻小说
  • 排行榜单
  • 完本小说
  • 全部小说
""" ini_sel = selector.Selector(text=html) item1 = ini_sel.xpath('//li/a[@href = "/xuanhuanxiaoshuo/"]') print(item1) print(type(item1)) # 类型为 print(len(item1)) # 长度为一 item2 = ini_sel.css('.nav-head') print(item2)

运行结果:

对于Selector对象,这是一个可以迭代的对象,所有节点的代码被存储在该对象的data属性里。

9-3 提取文本

既然Selector对象是一个可迭代的对象,我们就可以使用循环对结果进行遍历:

from parsel import Selector
html = """

    
        hello
    
			
  • 首页
  • 我的书架
  • 玄幻小说
  • 修真小说
  • 都市小说
  • 穿越小说
  • 网游小说
  • 科幻小说
  • 排行榜单
  • 完本小说
  • 全部小说
""" ini_sel = Selector(text=html) items = ini_sel.xpath('//li') for i in items: print(i.get())

运行结果:

遍历时的每一个 i变量的值又是一个selector对象,对于每一个i我们又可以使用css或者Xpath方法进行内容提取。若我们想要获取Selector对象的内容,则要使用该对象提供的get()方法,获取包含在该对象中的内容。

但是对于get方法,它仅能够返回第一个符合条件的结果

from parsel import Selector
html = """

    
        hello
    
			
  • 首页
  • 我的书架
  • 玄幻小说
  • 修真小说
  • 都市小说
  • 穿越小说
  • 网游小说
  • 科幻小说
  • 排行榜单
  • 完本小说
  • 全部小说
""" ini_sel = Selector(text=html) item0 = ini_sel.xpath('//a') print(item0.get())

运行结果:凭借之前的知识我们很容易知道item0中的内容不止一项,但是get方法只返回了一项:

若要返回所有结果:使用getall()方法

from parsel import Selector
html = """

    
        hello
    
			
  • 首页
  • 我的书架
  • 玄幻小说
  • 修真小说
  • 都市小说
  • 穿越小说
  • 网游小说
  • 科幻小说
  • 排行榜单
  • 完本小说
  • 全部小说
""" ini_sel = Selector(text=html) item0 = ini_sel.xpath('//a') print(item0.getall())

运行结果:所有结果放到了到一个列表中

今日结束,明日继续!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853353.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号