首页 > 编程知识 正文

爬虫python能做什么(python为什么叫爬虫)

时间:2023-05-05 11:17:17 阅读:182 作者:338

前言:

今天的内容是五步教你如何使用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-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 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”即可领取。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。