1. 程式人生 > >python接口自動化29-requests-html支持JavaScript渲染頁面

python接口自動化29-requests-html支持JavaScript渲染頁面

ESS .text 我的博客 意義 pri log pytho 功能 圖片

前言

requests雖好,但有個遺憾,它無法加載JavaScript,當訪問一個url地址的時候,不能像selenium一樣渲染整個html頁面出來。
requests-html終於可以支持JavaScript了,這就相當於是一個真正意義上的無界面瀏覽器了。

JavaScript支持

當第一次使用render() 渲染頁面的時候,會自動下載chromium,但只會下載這一次,後面就不會下載了。

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://www.cnblogs.com/yoyoketang/')
r.html.render()  # 首次使用,自動下載chromium

技術分享圖片

render()渲染頁面

到底渲染html頁面是個什麽概念呢?可以請求之後對比抓包看下,不使用render()之前,只發一個請求

技術分享圖片

使用render()之後,會發很多請求,類型於手工在瀏覽器上輸入url後,瀏覽器渲染整個完整的頁面,這正是我們想要的模擬瀏覽器發請求

技術分享圖片

案例

接下來訪問我的博客地址後,抓取我的個人信息

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://www.cnblogs.com/yoyoketang/', verify=False)
r.html.render()  # 首次使用,自動下載chromium
# print(r.html.html)
d = r.html.find("#profile_block", first=True)
print(d.text)

打印結果

昵稱:上海-悠悠
園齡:2年4個月
粉絲:1570
關註:73
+加關註

困擾很久的問題終於找到了解決辦法,更多強大的功能可以去requests-html的GitHub地址https://github.com/kennethreitz/requests-html

python接口自動化29-requests-html支持JavaScript渲染頁面