Как l oop через csv-файл ссылок, чтобы очистить веб-сайт, используя BeautifulSoup и запросы, а не получить request.exceptions.InvalidSchema? - PullRequest
0 голосов
/ 02 мая 2020

Я довольно новичок в кодировании в целом и благодарен за любую поддержку со стороны сообщества!

Что я хочу сделать: У меня есть CSV-файл со ссылками, которые ведут к различным продукты, из которых я хотел бы получить название продукта и записать его обратно в тот же или другой файл CSV (на самом деле не имеет значения). Для этого я попытался импортировать файл CSV (который работает нормально), записать каждую строку в список (который также работает), а затем выбрать каждое значение в списке, чтобы извлечь название продукта.

В чем моя проблема: Работает очистка одной ссылки, поэтому проблема лежит в списке, l oop, я думаю, комбинация запросов. Если я запускаю следующий код, я получаю сообщение об ошибке request.exceptions.InvalidSchema.

from bs4 import BeautifulSoup
import requests
import csv

f = open('three_links.csv', 'r')
reader = csv.reader(f)
links = []

for row in reader:
    links.append(row)

for link in links:
    response = requests.get(link)
    soup = BeautifulSoup(response.text, 'html.parser')
    title = print(soup.find(class_='sidebar-product-name').text.replace("\n","").replace(" ",""))

Заранее большое спасибо!

1 Ответ

0 голосов
/ 02 мая 2020

Проблема в том, что каждая строка, читаемая из файла csv, представляет собой список, и поэтому

response = requests.get(link)

на самом деле что-то вроде

response = requests.get(['https://www.example.com', 'something', 'something else'])

Вы можете сделать это вместо этого (предполагая, что ссылка находится в первом столбце в CSV:

response = requests.get(link[0])
...