Selenium python用于定位元素并打印其属性

时间:2016-11-25 15:59:24

标签: python selenium

我正在尝试网页抓取这个特定的网站 - Link to the Page。我想webscrape每个属性的data-listing-id。请看图像以查看我想要找到的元素。我无法发布我的HTML,因为它复杂得多。 Image

以下是我尝试的示例代码 -

driver.get("https://app.thestorefront.com/listings?address=New%20York,%20NY,%20USA&page=1")
Container=driver.find_elements_by_class_name("listing-panel")
for index in Container:
    a= index.find_element_by_class_name("favourite-tag.ng-isolate-scope")
    print(a)
    for index2 in a:
        b= index2.get_attribute("data-listing-id")

,结果无法找到元素a。请给我你的建议。非常感谢。

2 个答案:

答案 0 :(得分:1)

快速执行此操作的方法是找到具有您要查找的属性的所有元素。据我所知,只有你想要的元素具有该属性。

driver.get("https://app.thestorefront.com/listings?address=New%20York,%20NY,%20USA&page=1")
for e in driver.find_elements_by_css_selector("[data-listing-id]")
    print(e.get_attribute("data-listing-id"))

答案 1 :(得分:0)

要建立Andersson所说的内容,你需要找到所有元素,而不仅仅是一个。你也混淆了你的选择器。我建议只使用css_selector:

driver.get("https://app.thestorefront.com/listings?address=New%20York,%20NY,%20USA&page=1")
Container=driver.find_elements_by_class_name("listing-panel")
for index in Container:
    a= index.find_elements_by_css_selector(".favourite-tag.ng-isolate-scope")
    print(a)
    for index2 in a:
        b= index2.get_attribute("data-listing-id")