使用Python中的Selenium从某个div获取链接

时间:2018-04-30 08:13:55

标签: python selenium selenium-webdriver selenium-chromedriver

我有以下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获取这些链接?

1 个答案:

答案 0 :(得分:4)

根据您共享的HTML以获取rec_view div上存在的所有链接的列表,您可以使用以下代码块:

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_elements_*。此外,>引用即时<a>子节点,您需要遍历所有<a>子节点,以便所需的css_selector div.rec_view a