[英]Scraping website for prices using selenium
我刪除了舊帖子,因為它不夠清楚。
我正在使用 selenium 抓取網站,我面臨的問題是在使用抓取字段時
driver.get('****')
driver.find_element_by_id('fb_submit').click()
driver.find_element_by_id('email').send_keys('')
driver.find_element_by_id('password').send_keys('')
driver.find_element_by_id('btn-login').click()
driver.get('****')
driver.find_elements_by_xpath(//[@class='price'])
是該字段首先填充檢索,直到數據填充到頁面中。 因此,它使用 ["retrieving" 而不是定價] 檢索列表我如何解決這種情況,我嘗試使用等待驅動器,但它已經被填充。\
while tt:
elem =driver.find_elements_by_xpath('.//td[@data-title="Availability"]')
elem =[d.text for d in elem]
Availability = sele.xpath('.//td[@data-title="Availability"]/text()').extract()
# elemList =[d for d in elem]
for i in elem:
if "retreiving" not in i.lower() or "Retreiving" not in i or i != "Retreiving" :
tt = False
print(i,tt)
else:
tt =True
print("else" ,i, tt)
time.sleep(0.5)
更新:
這是我嘗試過但仍然無法正常工作的方法...
第二次更新:
WebDriverWait(driver, 10).until_not(EC.text_to_be_present_in_element((By.XPATH, ".//td[@data-title='Availability']"), "Retreiving"))
如果將包含價格的元素與在除其包含的文本之外的所有內容中顯示“檢索”的元素相同(即該元素在獲取價格之前和之后只有price
class),您可以編寫一些邏輯以等待元素包含你想要的數據?
就像是
while True:
element_text = driver.find_elements_by_xpath(//[@class='price']).text
if "retreiving" not in element_text:
break
time.sleep(1)
# element_text might contain the prices at this point
print(element_text)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.