我有一个保存在csv文件中的列表,我想从网站下载一些数据,如下所示:
http://www.ncbi.nlm.nih.gov/pubmed/23626827
我想编写一个python脚本来打开url,从csv文件中我已经存储了数字列表,这是在pubmed之后,将所有数据下载到另一个csv文件中。
所以我必须使用urllib2,循环和字符串,但我不能正确。
我不是要求整个剧本,只是请帮助我开始,或者提出一个想法。
非常感谢!
答案 0 :(得分:1)
以下是一个简单示例,介绍如何通过csv
读取带有数字(ID)的输入csv,通过urllib2
加载内容,通过lxml
解析内容并写入输出csv文件:
import urllib2
import csv
import lxml.html
URL = "http://www.ncbi.nlm.nih.gov/pubmed/"
# read IDs from the input csv file
with open('input.csv', 'r') as csvfile:
numbers = [row[0] for row in csv.reader(csvfile)]
# get the article and collect it's title for each ID
output = []
for number in numbers:
response = urllib2.urlopen(URL + number)
html = response.read()
tree = lxml.html.document_fromstring(html)
output.append(tree.xpath('//div[@class="rprt abstract"]/h1')[0].text)
# write article titles to the output csv
with open('output.csv', 'w') as csvfile:
csvwriter = csv.writer(csvfile)
for row in output:
csvwriter.writerow([row])
input.csv
内容:
23626827
23626828
23626829
您将在output.csv
中的每一行获得文章标题。
希望有所帮助。
答案 1 :(得分:0)
读取csv文件并获取数据:
f=open('yourCSV.csv','rb')
try:
reader = csv.reader(f)
for row in reader:
print row[0]
finally:
f.close()
然后将其添加到网址