Получить ссылки из определенного div, используя Selenium в Python - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть следующая 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?

1 Ответ

0 голосов
/ 30 апреля 2018

В соответствии с 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"))

Примечание : поскольку вам нужно собрать все атрибуты href из тега div , поэтому вместо find_element_* вам нужно использовать find_elements_*. Кроме того, > относится к непосредственному <a> дочернему узлу, где по мере необходимости вам необходимо пройти по всем <a> дочерним узлам, поэтому желаемый css_selector будет div.rec_view a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...