繁体   English   中英

使用Selenium和python自动访问下一页

[英]Automat acess to next page using selenium and python

我目前正在编写一个Python硒脚本来刮除“ 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> 

每当您要抓取多个页面时,都必须弄清楚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 =”。 即使如此,它也不会显示在第一页的网址中。 它仍然退出。 您添加“&page = 1”,它将为玩具提供第一页。

我在True时使用boucle修复了该问题:

    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)"""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM