python爬虫基础(2)—pyquery解析

阅读文本需要5分钟

前篇推文介绍了爬虫的基本流程中的第一二步,现在来介绍一下爬虫的第三步——解析网页。由于前段时间推送了,所以这里就不多介绍了,今天来分享一下另外的一个解析库——。

PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严格实现。语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了。

pyquery安装

直接通过pip安装

pip install pyquery

pyquery发起请求

pyquery可以直接打开html文件,也可以打开一个网站。也正是这一特性,所以可以不用requests库发起请求。例如:

这样就可以请求到百度的网页,当然pyquery也可以添加请求头和使用代理,方法跟是一样的,这里就不演示了。可以自己试着看能不能请求到知乎

pyquery解析方法

1. html() 和 text() ——获取相应的HTML块或文本块

2. 根据HTML标签来获取元素

注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块

3. eq(index) ——根据给定的索引号得到指定元素

接上例,若想得到第二个p标签内的内容,则可以:

4. filter() ——根据类名、id名得到指定元素

5. find() ——查找嵌套元素

6. 直接根据类名、id名获取元素

7. 获取属性值

8. hasClass(name) #返回判断元素是否包含给定的类

9. children(selector=None) ——获取子元素

10. parents(selector=None)——获取父元素

11. 元素的迭代

如果返回的结果是多个元素,如果想迭代出每个元素,可以使用items():

实战演练

学会了上面的语法,就可以从容地应对一些简单的网页了。下面就用豆瓣图书top250来实际操练一下。

首先分析下豆瓣图书top250的链接:如:http://book.douban.com/top250?start=0, 每页25条数据,即步长start的值为25,一直抓到http://book.douban.com/top250?start=225,即可全部爬取下来。

首先分析网页源码,找到需要抓取的信息(如下图)

(需要的信息)

所以我们可以以这个为基准,写出以下代码:

这样就可以在控制台显示所有的图书信息:

(图书信息)

最后

爬虫的第三步——解析网页就到这里,当然这里只是分享了pyquery的解析,其实python的解析库有很多,例如Beautifulsoup…可能有的朋友觉得只是输出在控制台没有什么意思,并且每次查看都需要重新运行一遍,这样很麻烦。所以,接下来将会给大家分享如何将数据存入数据库。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180620G08KC200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券