前言:
今天的内容是五步教你如何使用python爬虫神器PyQuery!(包括详细的步骤和代码),这里还是需要细说一下。为了更好的观看,大部分代码都是以图片的形式呈现的!喜欢就别忘了喜欢,注意,别迷路!
py图书馆正式文件
初始化PyQuery对象常用的CCS选择器伪类选择器,找到标签并获取标签信息,初始化为PyQuery对象。
相当于精美汤库的初始方法,将html转换为精美汤对象。
bsObj=美化组(html,‘html . parser’)
PyQuery库也应该有自己的初始化。
1初始化字符串。
从pyquery导入PyQuery作为pq
#初始化为PyQuery对象
doc=pq(html)
打印(类型(文档))
打印(文档)
返回
2初始化html文件
#filename参数是html文件路径。
test_html=pq(文件名='test.html ')
打印(类型(test_html))
打印(测试html)
返回
3初始化网址响应。
响应=pq(url='https://www.baidu.com ')
打印(类型(响应))
打印(响应)
返回
类“pyquery.pyquery.PyQuery”
提示:下一步自己玩。具体操作很简单,就不多介绍了!
然后,继续往下看!
二、常用的CCS选择器
打印带有id容器的标签
打印(文档(' #容器')
打印(类型(文档('容器'))
返回
打印带有类对象-1的标签
打印(文档('。对象-1’))
返回
li class='object-1'/
打印带有标签名称主体的标签
打印(文档('正文')
返回
使用多个css选择器
打印(文档(' html #容器')
返回
ul id='容器'
li class='object-1'/
li class='object-2'/
li class='object-3'/
/ul
三.伪类选择器
类伪科学
返回
Li class='object-2' Dafa /li
li class='object-1'Python/li
李class='object-6' Fun /li
包含
#找到了包含Python的li标记
打印(伪文档(' li:contains('Python ')))
#找到一个包含好李的标签
打印(伪文档(' li:包含('好')')
返回
li class='object-1'Python/li
里
class="object-3">好</li> <li class="object-4">好</li> <li class="object-6">好玩</li> 小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取四、查找标签
按照条件在Pyquery对象中查找符合条件的标签,类似于BeautifulSoup中的find方法。
打印id=container的标签
print(doc.find('#container'))返回
返回
<li class="object-1"/> <li class="object-2"/> <li class="object-3"/>2 子辈标签-children方法
#id=container的标签的子辈标签 container = doc.find('#container') print(container.children())返回
<li class="object-1"/> <li class="object-2"/> <li class="object-3"/>3 jmdds标签-parent方法
object_2 = doc.find('.object-2') print(object_2.parent())返回
4 兄弟标签-siblings方法
object_2 = doc.find('.object-2') print(object_2.siblings())返回
<li class="object-1"/> <li class="object-3"/>五、获取标签的信息
定位到目标标签后,我们需要标签内部的文本或者属性值,这时候需要进行提取文本或属性值操作
1 标签属性值的提取
.attr() 传入 标签的属性名,返回属性值
object_2 = doc.find('.object-2') print(object_2.attr('class'))返回
object-22 标签内的文本
.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 PyQuery PyQuery(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对象,更方便提取数据
返回
<class 'pyquery.pyquery.PyQuery'>以上就是本文全部内容啦!
最后,小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。