1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...

python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...

时间:2019-03-28 17:32:40

相关推荐

python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...

前言:

今天为大家带来的内容,是五步教会你用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 = '')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 = '')

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”即可领取。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。