requests-HTML是Python最新的模块,一般认为他结合了requests与bs4。等于同时使用了这两个模块。

这里写一篇文章记录一下。

模块的安装与导入

安装

pipenv install requests-html
1

现在一般最新的Python都 自带这个模块了。

正常导入

from requests_html import HTMLSession
1

异步导入

from requests_html import AsyncHTMLSession
asession = AsyncHTMLSessio
r = await asession.get('https://python.org/')
1
2
3

同时获取多个站点

from requests_html import AsyncHTMLSession
asession = AsyncHTMLSession()
async def get_pythonorg():
...   r = await asession.get('https://python.org/')
async def get_reddit():
...   r = await asession.get('https://reddit.com/')
async def get_google():
...   r = await asession.get('https://google.com/')
session.run(get_pythonorg, get_reddit, get_google)
1
2
3
4
5
6
7
8
9

编程中的使用

最常见的使用

session = HTMLSession()
headers = {
    "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36"
}
r = session.get(url,headers=headers)
1
2
3
4
5

headers一般都要填写,否则大多数网站的反爬第一关都过不了。