Как извлечь URL-адрес из JavaScript onclick, используя селен: Python

1

от страницы, имеющей код (как можно видеть в контрольном элементе, а не в исходном коде) как:

<div id="download_div" class="row" style="margin-left: 2%; margin-right: 2%">
<p id="download_sub_text" class="hide-on-small-only" style="text-align: center;">
    You could also download directly by
    <a onclick="ga('send', 'event', 'link', 'click_here', 'wholesale.item');"
        href="http://example.com/f2c9bd13afd7a17af35ad30a2c593c7f4bea2dd347b4149">
        clicking here!
    </a>

Я хочу извлечь ссылку href. Но driver.page_source не работает, поскольку он является частью скрипта, поэтому откуда мне нужно извлечь точно, если не исходный код, и что именно может быть здесь xpath?

Кроме того, если possible- Эта страница запускает загрузку файла (ссылка для скачивания being- " http://example.com/f2c9bd13afd7a17af35ad30a2c593c7f4bea2dd347b4149 "), поэтому, если эта ссылка может быть захвачена, тогда это решит мое дело.

  • 0
    Можете ли вы предоставить фактический URL?
Теги:
web-scraping
selenium

2 ответа

1
Лучший ответ

Прежде всего, чтобы найти ваш элемент ссылки, вы используете этот xpath -

//p[@id = 'download_sub_text']/a

Затем, чтобы получить значение атрибута, вы используете get_attribute(). Чтобы получить значение атрибута href вашего элемента -

required_url = driver.find_element_by_xpath("//p[@id = 'download_sub_text']/a").get_attribute("href")
print(required_url)

Кроме того, если вы хотите получить ссылку, к которой она перенаправляется после нажатия на нее, вы можете взять current_url после нажатия кнопки -

required_button = driver.find_element_by_xpath("//p[@id = 'download_sub_text']/a")
required_button.click()
required_url = driver.current_url
0

Есть ли возможность получить URL, прежде чем нажать на элемент?

эта строка возвращает мне "None": required_url = driver.find_element_by_xpath ("//p [@id = 'download_sub_text']/a"). get_attribute ("href")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню