我正在嘗試創建一個BeautifulSoup價格網絡爬蟲。以下是我感興趣的抓取網站顯示的內容。在div標籤之間提取數據Python中的Beautifulsoup
<div class="product-total-price">
<span itemprop="price">$14.76</span>
定價 「$ 14.76」 是我很感興趣但是,當我試圖回到它
import bs4
import requests
def getPrice(productUrl):
res = requests.get(productUrl)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
return soup.select("div.product-total-price > span")[0].parent
price = getPrice('https://www.homedepot.ca/en/home/p.12-sheetrock-ultralight-drywall-gypsum-panel-4-x-12.1000149007.html')
print(price)
輸出是:
-
我用.parent。看看發生了什麼
<div class="product-total-price">
<span itemprop="price">-</span>
和poof沒有顯示定價。我是編程新手,並試圖研究這一點,但沒有運氣。任何援助將不勝感激,謝謝。
你在技術上得到正確的答案了。在頁面調用一些javascript之前,實際的價格'($ 14.76)'不會被渲染,而是改變頁面以顯示實際價格'($ 14.76)'而不是'-'的佔位符。請閱讀以下一些補救方法:https://datapatterns.readthedocs.io/en/latest/recipes/scraping-beyond-the-basics.html#dealing-with-javascript – serk
謝謝serk。我看了一下你的鏈接,找到了解決方案。這並不理想,但它幫助我學習了更多。我最後使用硒,我會在下面發佈答案。謝謝! –