[英]Errors with Beautiful Soup output
我正在嘗試使用beautifulsoup
從gamepot的網頁上抓取數據。 但是,結果與我從page source viewer
獲得的結果非常不同。 首先,會產生很多errors
。 例如,我們有
r = requests.get(link)
soup = bs4.BeautifulSoup(r.text)
然而soup.title
給
<title>404: Not Found - GameSpot</title>
。
我實際上要抓取的數據甚至沒有出現。 是因為網頁在旁邊包含javascript
嗎? 如果是這樣,我該如何解決?
您僅向服務器發送HTTP請求。 您需要處理Javascript才能獲取內容。
像Ghost這樣的具有Javascript支持的無頭瀏覽器將是一個不錯的選擇。
from ghost import Ghost
ghost = Ghost()
ghost.open(link)
page, resources = ghost.evaluate('document.documentElement.innerHTML;')
soup = BeautifulSoup(page)
.evaluate('document.documentElement.innerHTML')
將顯示動態生成的內容,而不是查看源代碼時看到的靜態內容。
您的連接錯誤是:socket.error:[Errno 54]由對等方重置連接第一次連接到http://www.gamespot.com時,您必須捕獲cookie並將其用於響應頭中的其他頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.