我已经使用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()
答案 0 :(得分:3)
我使用了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()