Как нажать на кнопку «Следующая страница», созданную кнопкой узла / углового скрипта, с помощью веб-драйвера для Chrome? - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь собрать данные с веб-сайта, который возвращает результаты поиска по нескольким страницам, используя Selenium, Beautifulsoup на Python. Первая страница легко читается. Для перехода на следующую страницу необходимо нажать кнопку «>». Элемент выглядит так:

<a href ng-click="selectPage(page + 1, $event)" class="ng-binding">Next 

Я попробовал следующее:

browser = webdriver.Chrome()
browser.get ("https:www....com/search/?lat=dfdfd  ")
page = browser.page_source
soup = BeautifulSoup(page, 'html.parser')
# scraping the first page
#now need to click on the ">" , so that it can take me to the next page

Контроль должен перейти на следующую страницу, чтобы я мог поцарапать. Есть около 250 страниц из этих результатов.

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Ну, как вы не предоставили URL, я покажу пример, чтобы решить эту проблему.

Я рассматриваю, что кнопка имеет идентификатор, но вы можете изменить поиск по классу.и т. д.

from bs4 import BeautifulSoup
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = Chrome()
browser.get("https:www....com/search/?lat=dfdfd  ")
page = browser.page_source
soup = BeautifulSoup(page, 'html.parser')

wait = WebDriverWait(browser, 30)
wait.until(EC.visibility_of_element_located((By.ID, 'next-button')))
# Next page
browser.find_element_by_id('next-button').click()

# Continuous your code ...
0 голосов
/ 24 мая 2019

В Chrome, если вы щелкнете правой кнопкой мыши по странице, в контекстном меню появится опция «осмотреть». Нажмите на это и найдите элемент в HTML. Как только вы найдете его, щелкните его правой кнопкой мыши и выберите «Копировать»> «Копировать XPath». Затем вы можете использовать метод browser.find_element_by_xpath, чтобы присвоить этот элемент переменной. Затем вы можете использовать element.click(), чтобы щелкнуть по нему.

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