【问题标题】:Load url from CSV to scrape data从 CSV 加载 url 以抓取数据
【发布时间】:2020-12-05 00:24:29
【问题描述】:

我会从 csv 加载一个 url 列表,以使用 selenium 抓取数据。我使用了这段代码:

    with open('urls.csv', 'r') as file:    
    reader = csv.reader(file)
    for row in reader:
        print(row)
        driver.get(row)

urls.csv:

https://www.betexplorer.com/soccer/france/ligue-1-2010-2011/results/
https://www.betexplorer.com/soccer/france/ligue-1-2011-2012/results/
https://www.betexplorer.com/soccer/france/ligue-1-2012-2013/results/

print(row)

['https://www.betexplorer.com/soccer/france/ligue-1-2010-2011/results/']

但我在driver.get(row) 收到此错误 selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: 'url' must be a string

【问题讨论】:

标签: python selenium csv web-scraping


【解决方案1】:

CSV 文件具有,就像二维数组一样。

在您的代码中,您使用for row in reader: 迭代了行,但您忘记使用[n] 运算符 指定行的列,其中n 是自然数。这意味着您将数组而不是字符串传递给驱动程序(由打印输出中的方括号显示)并且 selenium 会引发异常。

您的网址位于 CSV 文件的第一列。要获取字符串,请使用 row[0] 指定行,如下所示:

with open('urls.csv', 'r') as file:    
reader = csv.reader(file)
for row in reader:
    print(row[0])
    driver.get(row[0])

您还可以对 url 使用 .txt 文件并遍历行,因为您只使用 CSV 文件的第一列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多