使用Selenium和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>

每当你报废多个页面时,你必须弄清楚网址是如何变化的。在您的情况下:

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',它会给玩具第一页。

我使用 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)"""

相关内容

  • 没有找到相关文章

最新更新