我一直在嘗試從 Zillow 中抓取代碼,但是 beautifulsoup 提供的代碼比來自 chrome 的 view-source 少得多。這是我的代碼:
from bs4 import BeautifulSoup
import requests
from bs4 import BeautifulSoup
import requests
url='https://www.zillow.com/homedetails/49-Mountain-St-Hartford-CT-06106/58139903_zpid/'
html=requests.get(url)
bs = BeautifulSoup(html.text,"html.parser")
bs
結果表明體內的內容物很少。但是,如果您復制 url 并在 chrome 上查看源代碼,您會看到很多。有人可以展示如何在 Zillow 上抓取正文中的全部內容嗎?我在結果中看到“請驗證您是一個人以繼續”,如何處理?
uj5u.com熱心網友回復:
我認為您的基本問題是 Zillow 會在第一個頁面請求后加載大量附加資料并使用該資料填充頁面。Zillow 也可能會阻止網路抓取(例如您看到的驗證碼)。
如何做好這件事是一個巨大的話題,在 Stack Overflow 問題中不容易回答。您可以查看此頁面以獲取可能對您作為刮板者有所幫助的資源串列 - https://github.com/niespodd/browser-fingerprinting
您還可以在瀏覽器的開發人員工具(Chrome 上的 ctrl F11)中打開您的網路選項卡。在網路選項卡中,您可以看到傳出的請求和回應。您可以在回應中找到您想要的資料并研究請求以了解如何獲取您正在尋找的資料。
uj5u.com熱心網友回復:
至于“驗證你是人類”,今天一個好的驗證碼不會在客戶端決議答案,并消除修改請求頭的大部分作業。因此,您可能想嘗試使用 selenium 瀏覽器和網路驅動程式,而不僅僅是請求庫,這樣您就可以手動擊敗驗證碼,然后讓您的刮刀完成其作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/369471.html
