抓取CSV提供的URL

时间:2017-12-05 17:10:47

标签: python csv

我有一个包含数据列的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])

有关实现此目标的任何帮助或建议?

由于

2 个答案:

答案 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)