Python, Selenium - как прокликать страницы
Формулировка задачи:
Добрый вечер.
Подскажите, пожалуйста, как пройтись по всем страницам на сайте.
Страницы переключаются js скриптом:
<li>
<a href="javascript:__doPostBack('ctl00$MainContent$ucTopDataPager$ctl00$ctl03','')">4</a>
</li>
Сначала видно только 10 страниц, меняются $ctl03(04,05,06 и т.д.)
В таком варианте 10 раз загружаю 1 страницу...
вангую, что сюда driver.find_element_by_id(next).click() нужно передавать ссылку, но не знаю как...
Листинг программы
- from selenium import webdriver
- from bs4 import BeautifulSoup
- import re
- driver = webdriver.Chrome(executable_path=r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
- url = 'http://fedresurs.ru/messages/IsSearching'
- ef getURLinfo(url):
- driver.get(url)
- html = driver.page_source
- next = "ctl00_MainContent_ucTopDataPager"
- soup = BeautifulSoup(html)
- tag = soup.find("div", class_="right")
- while tag.findAll('a', href = True):
- driver.find_element_by_id(next).click()
- soup = BeautifulSoup(driver.page_source)
- print(soup.prettify())
- driver.close()
- getURLinfo(url)
для проверки сделал так, 2-10, все равно рефрешит одну и ту же страницу, первую.
Подскажите плз как пройтись по остальным ссылкам?
Листинг программы
- for i in range(2,10):
- driver.find_element_by_xpath('//div/div[2]/table/tbody/tr/td[2]/ul/li' + '[' + str(i) + ']' + '/a').click()
- html = html + driver.page_source
- soup = BeautifulSoup(html)
- print(soup.prettify())
Решение задачи: «Python, Selenium - как прокликать страницы»
textual
Листинг программы
- from selenium import webdriver
- from selenium.webdriver.support.ui import Select
- driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
- url = 'http://fedresurs.ru/messages/IsSearching'
- driver.get(url)
- select = Select(driver.find_element_by_id('ctl00_MainContent_ddlMessageTypeList'))
- select.select_by_visible_text('Иные сведения')
- driver.close()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д