前言:
今天为大家带来的内容,是五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码),在这里还是要啰嗦下,为了有更好的观赏性,大部分代码用图片的方式呈现出来!喜欢的话不忘点赞关注不迷路哦!
PyQuery库官方文档
- 初始化为PyQuery对象
- 常用的CCS选择器
- 伪类选择器
- 查找标签
- 获取标签信息
初始化为PyQuery对象
相当于BeautifulSoup库的初识化方法,将html转化为BeautifulSoup对象。
bsObj = BeautifulSoup(html, 'html.parser')
PyQuery库也要有自己的初始化。
1 将字符串初始化
from pyquery import PyQuery as pq#初始化为PyQuery对象doc = pq(html)print(type(doc))print(doc)
返回
2 将html文件初始化
#filename参数为html文件路径test_html = pq(filename = 'test.html')print(type(test_html))print(test_html)
返回
3 对网址响应进行初始化
response = pq(url = 'https://www.baidu.com')print(type(response))print(response)
返回
提示:接下来就是自行发挥了,具体操作很简单就不做多介绍了!
然后,接着往下看!
二、常用的CCS选择器
打印id为container的标签
print(doc('#container'))print(type(doc('#container')))
返回
打印class为object-1的标签
print(doc('.object-1'))
返回
打印标签名为body的标签
print(doc('body'))
返回
多种css选择器使用
print(doc('html #container'))
返回
三、伪类选择器
伪类nth
返回
大法Python好玩contains
#找到含有Python的li标签print(pseudo_doc("li:contains('Python')"))#找到含有好的li标签print(pseudo_doc("li:contains('好')"))
返回
Python好好好玩小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取四、查找标签
按照条件在Pyquery对象中查找符合条件的标签,类似于BeautifulSoup中的find方法。
打印id=container的标签
print(doc.find('#container'))
返回
返回
2 子辈标签-children方法
#id=container的标签的子辈标签container = doc.find('#container')print(container.children())
返回
3 父辈标签-parent方法
object_2 = doc.find('.object-2')print(object_2.parent())
返回
4 兄弟标签-siblings方法
object_2 = doc.find('.object-2')print(object_2.siblings())
返回
五、获取标签的信息
定位到目标标签后,我们需要标签内部的文本或者属性值,这时候需要进行提取文本或属性值操作
1 标签属性值的提取
.attr() 传入 标签的属性名,返回属性值
object_2 = doc.find('.object-2')print(object_2.attr('class'))
返回
object-2
2 标签内的文本
.text()
返回
简单好用的 PyQuery Hello World! Python 大法 好
返回
Python Hello World! Python 大法 好
tips:如果我只想获得Hello World这个,不想得到其他的文本,可以使用remove方法将li标签去掉,然后再使用text方法
container = docs.find('#container')container.remove('li')print(container.text())
返回
Hello World!
pyquery一些自定义的用法
访问网址
PyQuery与BeautifulSoup对比,我们会发现PyQuery可以对网址发起请求。 比如
from pyquery import PyQueryPyQuery(url = 'https://www.baidu.com')
opener参数
这是PyQuery对百度网址进行请求,并将请求返回的响应数据处理为PyQuery对象。一般pyquery库会默认调用urllib库,如果想使用selenium或者requests库,可以自定义PyQuery的opener参数。
opener参数作用是告诉pyquery用什么请求库对网址发起请求。常见的请求库如urllib、requests、selenium。这里我们自定义一个selenium的opener。
这时候我们就能对PyQuery对象进行操作,提取有用的信息。具体请看上次的分享,如果想了解更多的功能,pyquery文档写的不怎么详细,好在基本跟jQuery功能吻合,我们如果想用好pyquery,需要查看jQuery文档。
cookies、headers
在requests用法中,一般为了访问网址更加真实,模仿成浏览器。一般我们需要传入headers,必要的时候还需要传入cookies参数。而pyquery库就有这功能,也能伪装浏览器。
让你的selenium带上pyquery功能
让driver访问的网址得到的网页直接变为PyQuery对象,更方便提取数据
返回
以上就是本文全部内容啦!
最后,小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。