如何循环使用BeautifulSoup和request来搜刮网站链接的csv文件,并且不会得到request.exceptions.InvalidSchema?

问题描述 投票:0回答:1

我对一般的编码相当陌生,感谢社区的任何支持!我想做的是:用BeautifulSoup和request来循环cv文件的链接,并且不会得到request.exceptions.InvalidSchema。

我想做的是。我有一个csv文件,里面有通往各种产品的链接,我想得到产品的标题,并把它写回同一个或另一个csv文件(并不重要)。为了做到这一点,我试过导入csv文件(工作正常),将每一行写入一个列表(也能正常工作),然后选择列表中的每个值来提取产品标题。

我的问题是什么呢?刮取单个链接是可行的 所以我想问题出在列表、循环、请求的组合上吧 如果我运行下面的代码,我得到的错误requests.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(" ",""))

先谢谢你了!

python web-scraping beautifulsoup python-requests browser-extension
1个回答
0
投票

问题是,从csv文件中读取的每一行都是一个列表,所以

response = requests.get(link)

其实是这样的

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

你可以这样做(假设链接在csv的第一列。

response = requests.get(link[0])
© www.soinside.com 2019 - 2024. All rights reserved.