【问题标题】:Python > Selenium + CSV: How to open links from list in .csv file, loop code, append data on csv?Python > Selenium + CSV:如何从 .csv 文件中的列表打开链接、循环代码、在 csv 上附加数据?
【发布时间】:2019-12-28 08:51:41
【问题描述】:

我目前正在构建一个爬虫,管理代码,但需要以下程序的一些编码帮助/教程建议:

1) 使用 webdriver 打开的 .csv 格式链接列表

2) 为列表中的所有链接运行相同的抓取代码

3) 将输出附加到 .csv 文件中

代码的基本结构:

 from selenium import webdriver
    import time
    import csv
    from selenium.webdriver.common.keys import Keys

    driver = webdriver.Chrome

    #driver.get("...link from csv file..."), e.g. with open('links.csv', 'r') as file:   etc...
    time.sleep(5)

    elements = driver.find_elements_by_class_name('data-xl')
    csvfile = "output.csv";

with open(csvfile, "w", newline="") as output:
    writer = csv.writer(output)
    writer.writerow(["Reads", "Average Time Spent", "Impressions", "Read Time", "Likes", "Publication Shares", "Times Stacked", "Link-Outs"])
    column headers

driver.quit()

问题:

1) 如何使用 Python Selenium 打开 .csv,并逐行(1、+1、+1...)依次跳转链接

2) 为步骤 (1) 中访问的所有链接循环代码,即使出现错误(例如“找不到元素”等),也可以继续处理 .csv 上的下一项

3) 在 .csv 中创建标头(注意:上面的代码结构不准确)

4) 以追加的方式打印输出到.csv,不重叠

任何有关如何实现上述步骤的提示都会有所帮助

【问题讨论】:

    标签: python selenium csv web-scraping


    【解决方案1】:

    首先您必须将driver = webdriver.Chrome 编辑为driver = webdriver.Chrome()

    这是完整的代码。

    from selenium import webdriver
    import time
    import csv
    
    #link.csv below
    # https://google.com
    # https://google.com
    # https://google.com
    
    driver = webdriver.Chrome()
    
    f = open('link.csv', 'r', encoding='utf-8')
    reader = csv.reader(f)
    w = open('output.csv', 'w', newline="", encoding="utf-8")
    writer = csv.writer(w)
    
    for line in reader:
        driver.get(line[0])
        time.sleep(5)
        elements = driver.find_element_by_xpath('//img[@alt="Google"]')
        writer.writerow(
                 ["Reads", "Average Time Spent", "Impressions", "Read Time", "Likes", "Publication Shares", "Times Stacked",
                  "Link-Outs"])
    
    f.close()
    w.close()
    
    

    【讨论】:

      猜你喜欢
      • 2020-12-15
      • 2015-08-03
      • 2020-10-29
      • 2020-06-02
      • 2018-07-16
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多