簡體   English   中英

find_elements_by_xpath 有時會返回一個員工列表?

[英]find_elements_by_xpath sometimes return an emply list?

所以我正在開發一個程序,該程序將從 Grailed ( https://www.grailed.com/ ) 中抓取信息,我的問題是有時我對 selenium 的調用會返回我想要的數據,但有時它會返回一個空的數據列表。 我是 Selenium 的新手,只是想了解它的工作原理,當它返回一個空列表時我找不到模式,所以我有點難過。

from selenium import webdriver

driver = webdriver.Chrome("Path to Chromedriver")
driver.get('https://www.grailed.com/designers/jordan-brand/hi-top-sneakers')

item = driver.find_elements_by_xpath('//html/body/div[3]/div[6]/div[3]/div[3]/div[2]/div[2]/div[1]/a/div[3]/div[1]/p[1]')
print(item)

我想的一件事是,當您再次加載頁面時,xpath 指定的項目會發生變化,但 xpath 保持不變,所以我不認為就是這樣。 有誰知道為什么它的回報不一致,我該如何解決?

誘導WebDriverWait ()並等待visibility_of_all_elements_located ()及xpath以下。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver=webdriver.Chrome("Path to Chromedriver")
driver.get("https://www.grailed.com/designers/jordan-brand/hi-top-sneakers")
elements=WebDriverWait(driver,10).until(EC.visibility_of_all_elements_located((By.XPATH,"//div[@class='feed-item']//div[@class='listing-designer-and-size']/p[@class='listing-designer truncate']")))
itemlist=[item.text for item in elements ]
print(itemlist)

Output

['JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND × NIKE', 'JORDAN BRAND × NIKE', 'JORDAN BRAND', 'JORDAN BRAND', 'JORDAN BRAND × NIKE × VINTAGE', 'JORDAN BRAND', 'JORDAN BRAND']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM