我正在嘗試根據 xpath 從亞馬遜獲取價格,但如果 else 陳述句無法正常作業 - 有人可以幫忙解決問題嗎?如果第一個 xpath 沒有找到元素,那么它將通過第二個 xpath 找到
from bs4 import BeautifulSoup
from lxml import etree
import requests
HEADERS = ({'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0','Accept-Language': 'en-US, en;q=0.5'})
URL= "https://www.amazon.in/dp/B099Z83VRC"
webpage = requests.get(URL, headers=HEADERS)
soup = BeautifulSoup(webpage.content, "lxml")
dom = etree.HTML(str(soup))
Price = dom.xpath('//div[@id="apex_desktop"]/div/div/span/span/text()')[0]
if Price == AttributeError:
Price = dom.xpath('//div[@id="apex_desktop"]/div/div/table//tr[2]/td[2]/span/span[1]/text()')[0]
else:
Price = "No data"
Price
uj5u.com熱心網友回復:
您可以使用 try..except 塊,如果它第一次拋出錯誤,xpath它將去 except 塊并嘗試第二個。
try:
Price = dom.xpath('//div[@id="apex_desktop"]/div/div/span/span/text()')[0]
except:
Price = dom.xpath('//div[@id="apex_desktop"]/div/div/table//tr[2]/td[2]/span/span[1]/text()')[0]
print(Price)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/455151.html
上一篇:當鏈接在.dialog-off-canvas-main-canvas中時,R中的Web抓取URL鏈接
下一篇:抓取時需要幫助獲取tr值
