在Python中使用Selenium获取来自某个div的链接

Ron*_*ald 1 python selenium selenium-chromedriver selenium-webdriver

我有以下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>
Run Code Online (Sandbox Code Playgroud)

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

www.xyz.com/firstlink.html
www.xyz.com/seclink.html
www.xyz.com/thrdlink.html
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的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)
Run Code Online (Sandbox Code Playgroud)

如何在Python上使用Selenium获得这些链接?

Deb*_*anB 5

按照您共享的HTML来获取rec_viewdiv 上所有链接的列表,您可以使用以下代码块:

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"))
Run Code Online (Sandbox Code Playgroud)

注意:由于您需要从div标签收集所有href属性,因此您无需使用。另外,指的是直接子节点,您需要遍历所有子节点,以便将find_element_*find_elements_*><a><a>css_selectordiv.rec_view a