簡體   English   中英

Selenium find_elements 以非基於網站的順序輸出

[英]Selenium find_elements output in non-website based order

今天我打開了一張關於如何找到所有帶有特定名稱的 url 鏈接的票,這里被了不起的人解決了,但是,現在我面臨一個問題,即輸出的順序與網站不對應.

當前代碼:

website = 'https://www.abitareco.it/nuove-costruzioni-milano.html'
path = Path().joinpath('util', 'chromedriver')
driver = webdriver.Chrome(path)
driver.get(website)

main = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "p1")))

url_list = driver.find_elements(By.XPATH, './/a[contains(@href, "scheda")]')
for x in url_list:
    print(x.get_attribute('href'))

輸出:

https://www.abitareco.it/scheda-MILANO2.html
https://www.abitareco.it/scheda-MILANO2-NUOVOCENTROPARCO.html
https://www.abitareco.it/scheda-MARTESANA-GRECO.html
https://www.abitareco.it/scheda-CADORE.html
...

問題是網站上的項目順序如下:

0                   ADRIANO
1                    BAGGIO
2                    BAGGIO
3                     BRERA
4                    CADORE
...

如您所見,第一個 url 應該是 ADRIANO,然后是 BAGGIO 和 BAGGIO2。

我將如何解決這個問題並修復排序?

謝謝!

我認為,問題在於 xpath,如果你使用這個:

//div[@name='p1']/a

然后打印href,我認為它會按網絡順序打印:

url_list = driver.find_elements(By.XPATH, "//div[@name='p1']/a")
for x in url_list:
    print(x.get_attribute('href'))

暫無
暫無

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

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