编写爬虫时requests+BeautifulSoup是一对完美的组合,现在requests库的作者又发布了一个功能强大的新库requests-html
用过requests库的同学都应该都喜欢他的简洁优雅,现在requests-html同样优雅,而且从名称可以看出应该是解析html的库,下面先简单的介绍一下使用方法,然后再来编写一个爬虫
从requests-html的Github的主页,我们可以看到这个库有以下功能特点:
- 支持JavaScript
- 支持CSS选择器。
- 支持xpath选择器
- 模拟用户代理
- 自动重定向
- 连接池和cookie持久性
- 支持异步
安装requests-html
pip install requests-html
- 需要注意的是这个库目前只支持python3.6版本
基本使用
学过requests库的同学看到requests-html的api应该会很熟悉,使用方法基本一致,不同的是使用requests编写爬虫时,要先把网页爬取下来,然后再交给BeautifulSoup等一些html解析库,现在可以直接解析了,下面我们通过小案例来感受一下
from requests_html import HTMLSession
session = HTMLSession()
def parse():
r = session.get('http://www.qdaily.com/')
# 获取首页新闻标签、图片、标题、发布时间
for x in r.html.find('.packery-item'):
yield {
'tag': x.find('.category')[0].text,
'image': x.find('.lazyload&#