python爬虫Pyquery简介及简单使用

作者: 采星星的小太阳BavaLI | 来源:发表于2020-04-06 16:37 被阅读0次

                               Pyquery简介及简单使用

介绍:

你好,我相信在你看到这篇文章的时候,你已经不是一个爬虫小白了,所以关于一些爬虫的基础知识诸如requests之类的我就不多叙述了,直接上干货。Pyquery是一个与BeautifulSoup类似的网页解析库,再说之前如果你是小白,不知道怎么安装的话我再

这里提供一种最常用的方式:在配置好pip的环境变量的情况下pip3 install Pyquery,回车即可。如果不知道环境变量怎么配置,那么大家可以自己百度一下,也不难,安装好之后我们就可以使用该库了。

Pyquery 与jquery?

如果你熟悉或者了解jQuery,那么使用这个库将会非常的方便,因为正如它的名称一样,它与jQuery有着千丝万缕的关系,说白了就是你可以使用web, css的选择器来解析选择我们所需要的网页内容。它与BeautifulSoup中提供的select()方法非常类似。

说在前面:

在演示之前呢,我想大家一般都会使用pycharm来编辑,在这里我推荐大家可以使用一个叫做jupyter的编辑器,

它也是十分方便的,你只需要在cmd里面pip3 install jupyter然后等待安装完成即可,提示:安装过程肯会很慢,在这里大家可以百度使用一些国内比如清华等的一些资源进行安装,这样会快很多。大家可以自行百度pip安装过慢,我想可以找到一些国内的地址的。在安装好之后,cmd运行jupyter notebook即可出现一个编辑器窗口。可以file新建一个python3文件,那么就和pycharm一样去编辑代码即可。方便快捷。

实例演示(建议实践):

初始化:

首先导入我们需要的包,和pycharm一样。提示:(tab键会有提示,但是通常要等一小会儿才会出来,

shift +enter键可以及时的查看运行结果哦)

1

静态初始化:

咱们测试的html片段,大家要从基础学起嘛

2

接着传入html,然后print一下,当然你也可以直接doc("li")shift +enter,也可以出现结果,具体大家自己选择,所以jupyter还是很方便的,它还可以制作网页PPT等一些功能,大家可以自己了解

在这里我们传入html以后,就像jQuery一样选择li标签,之后大家可以看结果,所有符合条件的li都被选择出来了。

3

查看一下类型:

URL初始化:

4

文件初始化:

只需要传入本地地址即可,前提是本地有,默认会在jupyter当前目录寻找文件

基本CSS选择器

id(#),class (.)子孙,直接后代,具体的话大家可以自己查找把。注意:class可以有多个哦比如<p class='class1 class2'></p>那么p标签就会对应着两个class了,大家要注意

1.这里查询class='item_0',对应输出的结果如下:

6

2.ul>li:直接后代选择器,也就是ul之下的所有直接后代li,输出结果如下:

7

查找元素

1.find()查找所有子元素

8 9

运行结果:

10

注意到都是pyquery.pyquery.PyQuery对象,那么我们还可以嵌套来进行查询,举个例子:

11

所以我们可以看到这个库还是非常方便的,也很灵活,在此查看type:

12

所以还可以在嵌套,具体期待大家实战

2.children()查找直接元素

大家注意与find()对比一般使用find()

也就是选择ul下面的所有直接含有class='active'的li

查找父元素

1.parent()方法查找直接父元素:

13

2.parents()方法查找祖先父元素:

14 15 查看类型

parents()还可以在传入一个参数,那么就会进行又一次的撒选,所以下面就只有一个了(wrap)

16

查找兄弟元素

注意'.list .item_0.active',list与.item_0.active中间有一个空格(css子孙选择器),.item_0.active中间没有空格,代表并列关系。运行结果:

17

siblings()兄弟元素

输出四个兄弟元素

同样也可以进行再次选择,传入参数:

这个时候就只输出含有.active的兄弟元素

遍历

单个元素

直接输出即可

多个元素

使用items()方法,返回一个迭代器,使用for in遍历:

17

获取信息

获取属性

获取属性方式1 获取属性方式2

获取文本

text()方法:

text()获取文本

获取html

.html()获取里面的标签

DOM操作

addClass() 与removeclass(),增加与删除class与jquery DOM操作差不多

增加一个class属性 删除add_class

attr,css

css()增加一个样式 attr()增加一个属性

                                                        总结

今天就将这么多,大家如果还想了解更多的话就自己去当一个百度工程师吧,如有错误,请指正,谢谢!

相关文章

网友评论

    本文标题:python爬虫Pyquery简介及简单使用

    本文链接:https://www.haomeiwen.com/subject/eshbphtx.html