1

我有一个保存在 csv 文件中的列表,我想从网站下载一些数据,如下所示:

http://www.ncbi.nlm.nih.gov/pubmed/23626827

我想编写一个python脚本来打开url,然后从我存储了数字列表的csv文件中,在pubmed /之后,将所有数据下载到另一个csv文件中。

所以我必须使用 urllib2、循环和字符串,但我就是不能正确使用它。

我不是要一个完整的脚本,只是请帮助我开始它,或者给出一个想法。

非常感谢!

4

2 回答 2

1

这是一个简单的示例,说明如何通过 读取带有数字(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.

希望有帮助。

于 2013-04-30T10:33:27.237 回答
0

读取 csv 文件并获取数据:

f=open('yourCSV.csv','rb')
try:
   reader = csv.reader(f)
   for row in reader:
       print row[0]
finally:
   f.close()

然后将其添加到 URL

于 2013-04-30T10:35:49.303 回答