Автоматизировать доступ к следующей странице, используя селен и питон - PullRequest
0 голосов
/ 24 мая 2018

В настоящее время я пишу сценарий python selenium для очистки "Likibu.com", это веб-сайт, который предлагает краткосрочное размещение, такое как Airbnb, бронирование ... Я успешно получил все данные, которые существуют на первой страницеи сохранить их в файле CSV, но проблема в том, что есть 37 страниц, и я хотел бы также удалить данные, которые существуют на этих страницах.Я управлял этим кодом, как показано ниже:

driver.get("https://www.likibu.com/")
page = driver.page_source
soup = BeautifulSoup(page, "lxml")
driver.get("https://www.likibu.com/{0}".format(soup.find(rel=re.compile("nofollow")).attrs["href"]))

Вы найдете здесь исходный код веб-страницы:

<ul class="pagination">
<li class="disabled"><a href="#">«</a></li>
<li class="active"><a class="" rel="nofollow" href="https://www.likibu.com/fr/search/39tuzgbpnycdv7tkj102g?guests=2&amp;destination_id=4094&amp;page=1">1</a></li>
<li><a class="" rel="nofollow" href="https://www.likibu.com/fr/search/39tuzgbpnycdv7tkj102g?guests=2&amp;destination_id=4094&amp;page=37">37</a></li>
<li><a class="" rel="nofollow" href="https://www.likibu.com/fr/search/39tuzgbpnycdv7tkj102g?guests=2&amp;destination_id=4094&amp;page=2">»</a></li>

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Я исправил это, используя букл в то время как True:

    if not driver.find_elements_by_xpath("//*[contains(text(), 'Suivant')]"):
        break
    link=WebDriverWait(driver, 1530).until(expected_conditions.element_to_be_clickable((By.LINK_TEXT, "Suivant")))
    link.click()
    next_page = driver.find_element_by_css_selector('#pnnext')
    next_page.click()
    time.sleep(5)"""
0 голосов
/ 12 июня 2018

Каждый раз, когда вы отбираете несколько страниц, вы должны выяснить, как изменяется URL.В вашем случае:

root = 'https://www.likibu.com/fr/search/39yrzgbpnycdv7tkj132g?guests=2&page='

page_number = 0
while true:
    page_number +=1
    try: 
        url = root + str(page_number)
        ### CODE #####
    except:
        ### terminare / print something ####

Примечание. Я добавил '& page =' к ссылке, которую вы разместили.Несмотря на это, он не отображается в URL для первой страницы.Это все еще выход.Если вы добавите '& page = 1', это даст игрушке первую страницу.

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