我試圖通過嘗試填寫表格并將其與請求一起提交來抓取網站https://www.languagesandnumbers.com/how-to-count-in-german/en/deu/美湯。檢查提交的網路流量后,我發現帖子引數是“numberz”和“lang”。這就是為什么我嘗試發布以下內容:
import requests
from bs4 import BeautifulSoup
with requests.Session() as session:
response = session.post('https://www.languagesandnumbers.com/how-to-count-in-german/en/deu/', data={
"numberz": "23",
"lang": "deu"
})
soup = BeautifulSoup(response.content, "lxml")
print(soup.find(id='words').get_text())
不幸的是,回應是動態的并且不可見,因此在提交表單后,我總是回傳主頁面,而特定 div 中沒有任何文本實際攜帶該回應。有沒有另一種方法可以使用請求和 BeautifulSoup 而不是使用 selenium 來抓取回應?
uj5u.com熱心網友回復:
您不需要BeautifulSoup但正確url地只獲得書面數字的結果:
https://www.languagesandnumbers.com/ajax/en/
因為它以這種方式回傳,ack:::dreiundzwanzig您必須提取字串:
response.text.split(':')[-1]
例子
import requests
with requests.Session() as session:
response = session.post('https://www.languagesandnumbers.com/ajax/en/', data={
"numberz": "23",
"lang": "deu"
})
response.text.split(':')[-1]
輸出
dreiundzwanzig
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/382740.html
上一篇:Json腳本無法正常運行
下一篇:從網址未更改的站點中抓取回應表
