亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Python 抓取數據并接收與 DevTools 不同的 html 樹

使用 Python 抓取數據并接收與 DevTools 不同的 html 樹

楊魅力 2022-10-06 15:58:14
我正在嘗試從網站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


查看完整回答
反對 回復 2022-10-06
  • 1 回答
  • 0 關注
  • 57 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號