Загрузить URL из CSV для очистки данных

#python #selenium #csv #web-scraping

#python #selenium #csv #очистка веб-страниц

Вопрос:

Я бы загрузил список URL из csv для очистки данных с помощью 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

Комментарии:

1. Где аргумент url? Где вы это использовали? Ваш код все еще не завершен.

2.betexplorer.com/soccer/france/ligue-1-2010-2011/results betexplorer.com/soccer/france/ligue-1-2011-2012/results betexplorer.com/soccer/france/ligue-1-2012-2013/results betexplorer.com/soccer/france/ligue-1-2013-2014/results betexplorer.com/soccer/france/ligue-1-2014-2015/results

3. Пожалуйста, отредактируйте свой пост, чтобы он был более понятным!

4. пожалуйста, разместите содержимое в urls.csv похоже, что строки в csv не являются URL-адресами.

Ответ №1:

CSV-файл содержит строки и столбцы, похожие на двумерный массив.

В вашем коде вы выполнили итерацию по строкам с помощью for row in reader: , но забыли указать столбец строки с помощью оператора[n], где n является натуральным числом. Это означает, что вы передаете драйверу массив вместо строки (показано квадратными скобками в вашем выводе на печать), и selenium выдает исключение.

Ваши URL-адреса указаны в первом столбце 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])
  

Вы также можете использовать файл .txt для URL-адресов и выполнять итерации по строкам, поскольку вы используете только первый столбец CSV-файла.