今天我打开了一张关于如何找到所有带有特定名称的 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。
我将如何解决此问题并修复排序?
谢谢!
答案 0 :(得分:1)
我认为,问题在于 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'))