Selenium вложенные циклы на следующую страницу - PullRequest
0 голосов
/ 18 октября 2018

Я создал скрипт с использованием 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()

1 Ответ

0 голосов
/ 18 октября 2018

Я использовал try-кроме, так что программа выйдет, когда нет следующей кнопки.Вместо печати вы можете записать результат в файл 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...