【问题标题】:Get links from a certain div using Selenium in Python在 Python 中使用 Selenium 从某个 div 获取链接
【发布时间】:2018-04-30 16:26:55
【问题描述】:

我有以下 HTML 页面。我想获取特定 div 中的所有链接。这是我的 HTML 代码:

<div class="rec_view">
    <a href='www.xyz.com/firstlink.html'>
        <img src='imga.png'>
    </a>
    <a href='www.xyz.com/seclink.html'>
        <img src='imgb.png'>
    </a>
    <a href='www.xyz.com/thrdlink.html'>
        <img src='imgc.png'>
    </a>
</div>

我想获取rec_view div 上存在的所有链接。所以我想要的那些链接是,

www.xyz.com/firstlink.html
www.xyz.com/seclink.html
www.xyz.com/thrdlink.html

这是我尝试过的 Python 代码

from selenium import webdriver;
webpage = r"https://www.testurl.com/page/123/"
driver = webdriver.Chrome("C:\chromedriver_win32\chromedriver.exe")
driver.get(webpage)
element = driver.find_element_by_css_selector("div[class='rec_view']>a")
link = element.get_attribute("href")
print(link)

如何在 Python 上使用 selenium 获取这些链接?

【问题讨论】:

  • 您确定您的代码不起作用吗?如果没有,请告诉我们你运行它时得到了什么

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

根据您共享的 HTML,您可以使用以下代码块:

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'C:\chromedriver_win32\chromedriver.exe')
driver.get('https://www.testurl.com/page/123/')
elements = driver.find_elements_by_css_selector("div.rec_view a")
for element in elements:
    print(element.get_attribute("href"))

注意:由于您需要从 div 标记中收集所有 href 属性,因此您需要使用 find_element_* 而不是 find_element_* 987654325@。此外,&gt; 指的是直接&lt;a&gt; 子节点,因为您需要遍历所有&lt;a&gt; 子节点,因此所需的css_selector 将是div.rec_view a

【讨论】:

  • 我也有类似的问题。我想从link 中提取与“tif”对应的所有href 并将其保存到列表中。我尝试使用by_partial_linked_text("goes-16.rgb.tif")by_xpath(),但在这两个列表中都是空的。使用by_css_selector("marco_goes.div.div.modal-body.div.div.div.ol.li a")
猜你喜欢
  • 1970-01-01
  • 2022-07-13
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 2021-11-12
  • 2021-04-05
  • 2019-08-07
相关资源
最近更新 更多