gpt4 book ai didi

python - 无法读取带有 url 的 csv 以在 python 中抓取它们

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:55 28 4
gpt4 key购买 nike

我是 python 的新手,所以我尝试使用 visual studio 和 windows 7 以下

import csv
from bs4 import BeautifulSoup
import requests

contents = []
with open('websupplies.csv','r') as csvf: # Open file in read mode
urls = csv.reader(csvf)

for url in urls:
contents.append(url) # Add each url to list contents


for url in contents: # Parse through each url in the list.
page = requests.get(url).content
soup = BeautifulSoup(page, "html.parser")

price = soup.find('span', attrs={'itemprop':'price'})
availability = soup.find('div', attrs={'class':'product-availability'})

但我得到 - 没有找到连接适配器.. '['a url']'

为什么?

csv的结构如下

https://www.websupplies.gr/epeksergastis-intel-core-i5-8400-9mb-2-80ghz-bx80684i58400
https://www.websupplies.gr/epeksergastis-intel-celeron-g3930-2mb-2-90ghz-bx80677g3930
https://www.websupplies.gr/epeksergastis-amd-a6-9500-bristol-ridge-dual-core-3-5ghz-socket-am4-65w-ad9500agabbox

他们最后没有分栏

最佳答案

您的文件是一个简单的 URL 列表。它不是真正的 CSV。

CSV 阅读器将每一行读入其自己的列表中。所以加载数据的结构将是:

[
["https://www.websupplies.gr/epeksergastis-intel-core-i5-8400-9mb-2-80ghz-bx80684i58400"],
["https://www.websupplies.gr/epeksergastis-intel-celeron-g3930-2mb-2-90ghz-bx80677g3930"],
["https://www.websupplies.gr/epeksergastis-amd-a6-9500-bristol-ridge-dual-core-3-5ghz-socket-am4-65w-ad9500agabbox"],
]

解决此问题的一种方法是使用 url[0] 作为 requests.get 的参数,但真正正确的解决方法是完全不使用 CSV .由于每行只有一条数据,因此您可以直接读取数据并将其传递给请求:

with open('websupplies.csv','r') as csvf: # Open file in read mode 
for line in csvf:
contents.append(line.strip('\n')) # Add each url to list contents

关于python - 无法读取带有 url 的 csv 以在 python 中抓取它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55123781/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com