我有一个包含数据列的CSV,第15列报告了一个URL列表。现在,我需要从列中选择每个URL,从目标网页中提取新价格,然后将其存储在价格列中以更新旧价格。
如果没有相同的列枚举,这里是一个近似的CSV:
asin,title,product URL,price
KSKFUSH01,Product Title,http://....,56.00
下面是我编写的示例代码,但它只打印URL :(
import csv
with open('some.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
for line in csv_reader:
print(line[15])
有关实现此目标的任何帮助或建议?
由于
答案 0 :(得分:1)
这是一个很好的指南,介绍如何使用BeautifulSoup抓取网站 https://medium.freecodecamp.org/how-to-scrape-websites-with-python-and-beautifulsoup-5946935d93fe
答案 1 :(得分:1)
看起来你想要使用csv编写器。您可以访问每行中的URL。以下是编写新价格的方法。
import csv
import urllib2
from bs4 import BeautifulSoup
with open('some.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
with open('newPricedata.csv', 'w', newline='') as Newcsvfile:
Pricewriter = csv.writer(Newcsvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
for line in csv_reader:
page = urllib2.urlopen(line[15])
soup = BeautifulSoup(page, ‘html.parser’)
price = soup.find(‘td’, attrs={‘class’: ‘a-size-mini a-color-price ebooks-price-savings a-text-normal'})
Pricewriter.writerow(line[0]+','+,line[1]+','....+price.text)