如何在子节点上循环并打开“href”进行进一步解析?

时间:2017-02-19 19:30:37

标签: python html parsing selenium-webdriver web-scraping

我正在尝试使用python和selenium从本地房地产网站进行解析。我到达时选择了所需的页面,我想通过位于父目录中的每个元素,打开每个页面进行进一步的解析。

我写了一段代码来选择所需的页面:

from selenium import webdriver

driver = webdriver.Chrome()
url = "https://makler.md/md/"
driver.get(url)
driver.find_element_by_xpath('//*[@id="rublist_lev1"]/li[1]/a').click() # acces Imobiliare
driver.find_element_by_link_text("Vânzare apartamente, camere").click() # acces Apartamente

HTML是:

我需要循环迭代父目录:

<div class="ls-short ">

选择每个有ID的孩子:

<article class="" id="tr_an-265955">

并点击与其关联的页面。

1 个答案:

答案 0 :(得分:2)

我猜您需要以下内容:

links = []
for element in driver.find_elements_by_xpath('//article[starts-with(@id, "tr_an-")]//a[@class="ls-detail_anUrl"]'):
    links.append(element.get_attribute('href'))
for link in links:
    driver.get(link)
    # do whatever you need to do on that page...

这应该收集列表中所有必需的页面链接,然后您可以在循环中处理每个页面