Python3网络爬虫之解析库pyquery的使用(三)

系统 1973 0

pyquery的安装:

ubtuntu和windows下安装lxml:pip3 install pyquery

验证安装:安装完成,在python命令行下输入import pyquery 没有报错,证明库已经安装好了。

pyquery的介绍:

PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严格实现。语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法。

pyquery的官网:

http://pyquery.readthedocs.io

pyquery的常用操作:

(1)pyquery常见的初始化方式:传入字符串初始化;传入URL初始化,传入文件名初始化等

传入字符串初始化:

            
              from pyquery import PyQuery 
 
html = '''
              
              '''
 
doc = PyQuery(html)#html变量是一个字符串类型,作为参数用来初始化
print(doc)
print(type(doc))
print(doc('li'))


            
          

传入URL初始化:

            
              from pyquery import PyQuery
doc = PyQuery('https://www.baidu.com')
# doc1 = pq(url='https://www.baidu.com')
print(doc)
print(doc('head'))
            
          

传入文件名初始化:

            
              from pyquery import PyQuery
doc = PyQuery(filename='./test.html')
print(doc('head'))
            
          

(2)pyquery基于CSS选择器进行查找

规则:

Python3网络爬虫之解析库pyquery的使用(三)_第1张图片

            
              from pyquery import PyQuery 
 
html = '''
              
              '''
 
doc = PyQuery(html)
print(doc)
#id等于haha下面的class等于item-0下的a标签下的span标签(注意层级关系以空格隔开)
print(doc('#haha .item-0 a span'))
            
          

(3)DOM操作(或者叫节点操作)

属性的增删操作:

            
              from pyquery import PyQuery 
 
html = '''
              
              '''
 
doc = PyQuery(html)
li = doc('.item-0.active')
print(li)
#删除classactive
print(li.removeClass('active'))
#增加class属性eee
print(li.addClass('eee'))
            
          

attr、text、html、css:

当然,除了操作class这个属性外,也可以用attr()方法对属性进行操作。此外,还可以用text()和html()方法来改变节点内容的内容,使用css()方法对css属性进行操作

            
              from pyquery import PyQuery 
 
html = '''
              
              '''
 
doc = PyQuery(html)
li = doc('.item-0.active')
print(li)
print(li.attr('id','id_test'))
print(li.text('changed item'))
print(li.css('font-size','20px'))
print(li.html('
              
                changed item'))
              
            
          

为了方便理解,这是运行截图:

Python3网络爬虫之解析库pyquery的使用(三)_第2张图片

 

remove:

删除某个标签,在爬取过程中我们通常爬去一下标签或者内容下来的时候总会有些不想要的标签,这个时候我们可以用下面的类似方法删除这个标签

            
              from pyquery import PyQuery 
 
html = '''
              
              '''
 
doc = PyQuery(html)
data = doc('.content')
print(data.text())
#删除所有a标签
data.find('a').remove()
#再次打印
print(data.text())
            
          

其实还有很多节点操作方法,比如append(),empty()和prepend()等方法(其实这些方法在爬虫基本用不到),她们和jquery()方法一致,详细的用法可以参考文档http://pyquery.readthedocs.io/en/latest/api.html

 

其实还有很多,不过基本都用不到,在爬虫的时候。哈哈哈,其实,我也就知道这么多

 

 

 

 

 

 

 

 

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论