|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 _2_ 于 2019-12-1 20:35 编辑
什么?!requests-html 是个什么鬼?
别被标题误解了,其实和 requests 一样,它也是一个
6到飞起的网页解析利器
说白了就是 requests 的新一代
今天就像大家来介绍
关于 requests-html 的那些事
Part 1 安装
这还不好说,用 pip 不就行了吗?
pip install requests-html
况且,这个方法我们何止用了千万遍......
Part 2 新特性
在最新的 requests-html 中主要有一下几个新特性
手动敲黑板!!!
全面支持 JavaScript
CSS 选择器
自定义 User-Agent
自动追踪重定向
连接池与 cookies 持久化
哇塞,这么厉害!
反正我也看不懂
Part 3 简单上手
搞不懂没关系,凡事先从最简单的开始
做爬虫,接触到最多的便是 requests 和 bs4 , 偶尔也会用用 json , XPath 什么的,
反正都是先用 requests 获取网页源码,再通过 bs4 进行解析
但是,
在 requests-html 中,只需要一步!
在 requests-html 中,
对PyQuery requests lxml bs4 等库进行了二次封装,
将 requests 的
简单 便捷 强大做了又一次升级
也就是说,
用 requests-html 只需一步就可以直接进行 JS 渲染!
下面用一个简单的例子展示一下 requests-html 的强大:
>>> #1-1
>>> import requests_html
>>> session = requests_html.HTMLSession
>>> h = session.get("https://fishc.com.cn")
>>> type(h)
<class 'requests_html.HTMLResponse'>
>>> h.request
<PreparedRequest [GET]>
>>> h.status_code
200
高能预警开始!
支持 JavaScript
不用使用 requests 库也能渲染 JavaScript 页面:
#1.2
from requests_html import HTML
doc = """<a >"""
html = HTML(html=doc)
print(html.links)
script = """
() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
deviceScaleFactor: window.devicePixelRatio,
}
}
"""
val = html.render(script=script, reload=False)
print(val)
print(html.html)
当然,还支持 CSS 和 XPath 选择器:
>>> #先运行1.1
>>> node = h.html.find('#about', first=True)
>>>
小插曲:
至于 CSS 和 XPath,
小甲鱼都有讲,
想复习的鱼油可以好好看看 requests-html 官方的文档
比较实用的一些方法
requests_html.user_agent(style=None)
返回一个指定风格的合法的用户代理,默认是 Chrome 风格的用户代理
requests_html.HTMLSession(mock_browser=True)
这是一个可被销毁的 Session 对象,可用于 Cookie 持久化和连接池,以及其他地方。
|
评分
-
查看全部评分
|