我有一个保存在 csv 文件中的列表,我想从网站下载一些数据,如下所示:
http://www.ncbi.nlm.nih.gov/pubmed/23626827
我想编写一个python脚本来打开url,然后从我存储了数字列表的csv文件中,在pubmed /之后,将所有数据下载到另一个csv文件中。
所以我必须使用 urllib2、循环和字符串,但我就是不能正确使用它。
我不是要一个完整的脚本,只是请帮助我开始它,或者给出一个想法。
非常感谢!
我有一个保存在 csv 文件中的列表,我想从网站下载一些数据,如下所示:
http://www.ncbi.nlm.nih.gov/pubmed/23626827
我想编写一个python脚本来打开url,然后从我存储了数字列表的csv文件中,在pubmed /之后,将所有数据下载到另一个csv文件中。
所以我必须使用 urllib2、循环和字符串,但我就是不能正确使用它。
我不是要一个完整的脚本,只是请帮助我开始它,或者给出一个想法。
非常感谢!
这是一个简单的示例,说明如何通过 读取带有数字(ID)的输入 csv,通过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
.
希望有帮助。
读取 csv 文件并获取数据:
f=open('yourCSV.csv','rb')
try:
reader = csv.reader(f)
for row in reader:
print row[0]
finally:
f.close()
然后将其添加到 URL