【发布时间】:2018-05-28 09:46:08
【问题描述】:
我目前正在编写一个 python selenium 脚本来抓取“Likibu.com”, 它是一个提供短期住宿的网站,例如 Airbnb,我已成功获取页面中存在的所有数据并将它们保存在 csv 文件中, 我的问题是我的程序永远不会停止,因为当我到达首页时,变量“href”中总是有一个值我的程序保持运行即使(href)的值是“#”,所以我想要做的是当我到达最后一页时,我的程序在抓取后立即停止,而不是点击 href = "#" 我管理此代码如下:
if not driver.find_element_by_link_text('»'):
break
# Open next page
driver.find_element_by_link_text('»').click()
这是网页的源代码:
<ul class="pagination">
<li class="disabled"><a href="#">«</a></li>
<a class="" rel="nofollow" href="https://www.likibu.com/fr/search/39tuzgbpnycdv7tkj102g?guests=2&destination_id=4094&page=1">1</a></li>
<li><a class="" rel="nofollow" href="https://www.likibu.com/fr/search/39tuzgbpnycdv7tkj102g?guests=2&destination_id=4094&page=2">2</a></li>
<li><li class="active"><a class="" rel="nofollow" href="#">»</a></li>
【问题讨论】:
-
您对
if not driver.find_element_by_link_text('»')有什么期望?如果没有这样的元素,你会得到NoSuchElementException。break(我想提供的代码是循环的一部分)永远不会被执行。另请注意,我已经分享了@987654321@ - 如果您需要一些说明而不是提交有关同一问题的新问题,请在答案下方留下评论... -
如果下一页不存在则中断
-
只需将
try/except构造实现为here
标签: python html selenium beautifulsoup