python - Selenium 嵌套循环到下一页
问题描述
我已经使用 Selenium 构建了一个脚本,该脚本循环一个页面,打印数据并转到下一页并执行相同的操作。
现在我正在尝试将数据保存到 CSV 文件,因此需要创建一个嵌套循环 - 目前我正在多次重复循环(如下所示)。
如何创建嵌套循环然后保存到 CSV 文件?
如果脚本获得最后一页并且它们不是那里的下一步按钮,脚本也会失败吗?
谢谢 - 这是我正在使用的代码。
from selenium import webdriver
import time
browser = webdriver.Firefox(executable_path="/Users/path/geckodriver")
browser.get('https://www.tripadvisor.co.uk/Restaurants-g186338-zfn29367-London_England.html#EATERY_OVERVIEW_BOX')
meci = browser.find_elements_by_class_name('property_title')
for items in meci:
title = items.text
href = items.get_attribute('href')
print(title)
print(href)
time.sleep(3)
browser.find_element_by_css_selector('.next').click()
time.sleep(3)
meci = browser.find_elements_by_class_name('property_title')
for items in meci:
title = items.text
href = items.get_attribute('href')
print(title)
print(href)
time.sleep(3)
browser.find_element_by_css_selector('.next').click()
time.sleep(3)
meci = browser.find_elements_by_class_name('property_title')
for items in meci:
title = items.text
href = items.get_attribute('href')
print(title)
print(href)
browser.quit()
解决方案
我使用了 try-except 所以当没有下一个按钮时程序将退出。您可以将结果写入 CSV 文件,而不是打印。
while True:
try:
meci = browser.find_elements_by_class_name('property_title')
for items in meci:
title = items.text
href = items.get_attribute('href')
print(title)
print(href)
time.sleep(3)
browser.find_element_by_css_selector('.next').click()
time.sleep(3)
except:
break
browser.quit()
推荐阅读
- java - 子集总和问题:返回所需子集的变体
- javascript - 如何防止ckeditor在页面中加载多个content.css
- python - Gif 后跟输入语句时使脚本崩溃
- c# - 在具有表锁的数据库中生成带有验证的随机密钥
- java - java中函数的导数
- regex - 如何使用 sed 或 awk 在一行中分离重复模式,并将它们保存到行中?
- r - `fourfoldplot` 在列标签中没有正确显示大小和颜色
- android - 如何在android中随手指移动一起移动视图?
- mysql - 棘手的 CTE - 递归 sql(编辑我的查询)
- javascript - JavaScript:模拟 CSS 三次贝塞尔函数()