Selenium Python-从try-except循环写入CSV

时间:2018-10-19 13:52:23

标签: python python-3.x selenium selenium-webdriver

我编写了一个循环并打印结果的脚本,我试图添加保存为CSV,但是我不知道该怎么做。

我已经有了保存它的代码,该代码可以在其他脚本上运行,但是要么只打印一行,要么打印3行(每个循环一行。

该如何打印所有结果?

这是我正在使用的代码

from selenium import webdriver
    import time

    browser = webdriver.Firefox(executable_path="/Users/**/Downloads/geckodriver")

    browser.get('https://www.tripadvisor.co.uk/Restaurants-g186338-zfn29367-London_England.html#EATERY_OVERVIEW_BOX')

    meci = browser.find_elements_by_class_name('listing')

    filename ="scrape1.1.csv"
    f = open(filename, 'w')
    headers ="Title, URL, Rating\n "

    f.write("")

    while True:
        try:

            meci = browser.find_elements_by_class_name('listing')

            for items in meci:
                title_cont = items.find_element_by_class_name('property_title')
                title = title_cont.text
                href = title_cont.get_attribute('href')
                rating = items.find_element_by_class_name('ui_bubble_rating')
                ratingbubble = rating.get_attribute('alt').replace(' of 5 bubbles', '')

                print(title)
                print(href)
                print(ratingbubble)

            time.sleep(3)
            browser.find_element_by_css_selector('.next').click()
            time.sleep(3)

        except:

            break

    f.write(title + "," + href + "," + ratingbubble + "\n")

    f.close()

    browser.quit()

1 个答案:

答案 0 :(得分:1)

尝试

from selenium import webdriver
import time

browser = webdriver.Firefox(executable_path="C:/Py/pythonv4/gecko/geckodriver")

browser.get('https://www.tripadvisor.co.uk/Restaurants-g186338-zfn29367- 
London_England.html#EATERY_OVERVIEW_BOX')
meci = browser.find_elements_by_class_name('listing')

filename ="scrape1.1.csv"
f = open(filename, 'w')
headers ="Title, URL, Rating\n "

f.write("")

while True:
   try:

    meci = browser.find_elements_by_class_name('listing')

    for items in meci:
        title_cont = items.find_element_by_class_name('property_title')
        title = title_cont.text
        href = title_cont.get_attribute('href')
        rating = items.find_element_by_class_name('ui_bubble_rating')
        ratingbubble = rating.get_attribute('alt').replace(' of 5 bubbles', '')

        print(title)
        print(href)
        print(ratingbubble)
        f.write(title + "," + href + "," + ratingbubble + "\n")
    time.sleep(5)
    browser.find_element_by_css_selector('.next').click()
    time.sleep(1)

except:

    break



f.close()

browser.quit()