我正在嘗試從網站zara.com 抓取數據,我已經弄清楚如何使用列表中的一組項目解析父元素,但我想更深入地挖掘并打開每個項目鏈接并獲取有關它的其他信息.所以,我使用了這種代碼:import requestsimport timefrom bs4 import BeautifulSoupListWithRequests = ['https://www.zara.com/nl/en/plain-shirt-p06608389.html'] # In this example only one itemfor item in ListWithRequests: response = requests.get(item,verify=False) soup2 = BeautifulSoup(response.text, "html.parser") soup2.prettify() time.sleep(1) f = open("demo.html","w+") f.write(response.text)例如我想收到商品的價格,在開發工具中它是塊<span class="main_price">25.95 EUR</span>或項目 ID<div clas="product-info-wrapper _product-info"> <p class="product-color"> <span class="_colorName">**White** </span> </p></div>但是在demo.html文件中,我收到了完全不同的樹,并且找不到我需要的任何元素。請告訴我我做錯了什么
1 回答

GCT1015
TA貢獻1827條經驗 獲得超4個贊
頁面是通過 加載的JavaScript,因此bs4將無法呈現它。您可以selenium在這種情況下使用,但我注意到您要查找的數據實際上顯示在script標簽中,您可以輕松加載它JSON或快速捕獲,我使用過re:
import requests
import re
def main(url):
r = requests.get(url)
price = re.search(r'\"price\": \"(.*?)\"', r.text).group(1)
print(price)
main("https://www.zara.com/nl/en/plain-shirt-p06608389.html")
輸出:
25.95
添加回答
舉報
0/150
提交
取消