requests雖好,但有個遺憾,它沒法加載JavaScript,當訪問一個url地址的時候,不能像selenium同樣渲染整個html頁面出來。
requests-html終於能夠支持JavaScript了,這就至關因而一個真正意義上的無界面瀏覽器了。
中文文檔地址:https://cncert.github.io/requests-html-doc-cn/#/javascript
當第一次使用render() 渲染頁面的時候,會自動下載chromium,但只會下載這一次,後面就不會下載了。html
from requests_html import HTMLSession session = HTMLSession() r = session.get('https://www.cnblogs.com/yoyoketang/') r.html.render() # 首次使用,自動下載chromium
到底渲染html頁面是個什麼概念呢?能夠請求以後對比抓包看下,不使用render()以前,只發一個請求java
使用render()以後,會發不少請求,類型於手工在瀏覽器上輸入url後,瀏覽器渲染整個完整的頁面,這正是咱們想要的模擬瀏覽器發請求git
接下來訪問個人博客地址後,抓取個人我的信息github
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-htmlsession