【发布时间】:2018-04-07 11:34:41
【问题描述】:
我使用 python 编写了一些代码来从网页中抓取一些标题和价格,并将结果写入 csv 文件。脚本运行得很棒。当我将数据附加到 csv 文件时,脚本正在以这样的方式写入标题,如果它运行 4 个循环,那么标题将被写入 4 次。如何修复它,以便将标题写入一次。谢谢。
这是脚本:
import csv
import requests
from bs4 import BeautifulSoup
diction_page = ['http://www.bloomberg.com/quote/SPX:IND','http://www.bloomberg.com/quote/CCMP:IND']
for link in diction_page:
res = requests.get(link).text
soup = BeautifulSoup(res,'lxml')
title = soup.select_one('.name').text.strip()
price = soup.select_one('.price').text
print(title,price)
with open('item.csv','a',newline='') as outfile:
writer = csv.writer(outfile)
writer.writerow(["Title","Price"])
writer.writerow([title, price])
【问题讨论】:
-
将
writer.writerow(["Title","Price"])移出循环会有问题吗?您可以为整个循环保留一个文件上下文,也可以编写标题,关闭文件并继续循环
标签: python python-3.x csv web-scraping