#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-файла.