检索大量url地址

2024-05-23 19:07:26 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:为了澄清我使用的是python,我想在python中使用它。在

我正在为我们大学的一个研究项目收集数据。基本上,我需要从一个监控欧洲议会的网站上搜集大量信息。以下是一个网站的url的示例:

http://www.europarl.europa.eu/sides/getDoc.do?type=REPORT&mode=XML&reference=A7-2010-0190&language=EN

地址参考部分后面的数字是指: A7=议会正在开会(以前的议会是A6等), 2010年=年, 0190=文件编号。在

我想做的是创建一个变量,它包含不同议会的所有url,这样我就可以循环这个变量,并从网站上获取信息。在

附言:我试过这个:

number = range(1,190,1) 

   for i in number: 
       search_url = "http://www.europarl.europa.eu/sides/getDoc.do?type=REPORT&mode=XML&reference=A7-2010-" + str(number[i]) +"&language=EN" 

      results = search_url 
      print results

但这给了我以下错误: 回溯(最近一次呼叫): 文件“”,第7行,英寸 索引器错误:列表索引超出范围


Tags: reporthttpurlnumber网站wwwtypedo
3条回答

你能用python和wget吗?遍历存在的会话,并创建一个字符串给wget?或者这是过度的杀戮?在

抱歉,我不能给这个作为评论,但我还没有足够高的分数。在

看看你在上面的注释中引用的代码,你的问题是你试图添加一个字符串和一个整数。{1}当它转换时,它是有用的,但是当它与一些语言转换时,它是有用的。在

应该是这样的:

"http://firstpartofurl" + str(number[i]) + "restofurl"

或者,可以使用字符串格式(使用%等作为Wayne的答案)。在

如果我理解正确的话,你只是想在这些地方循环一下?在

你想要A7,A6,A5。。。?在

如果_这_就是_你_想要_的_ , _一_个_简单_的_循环_可以_处理_它_ :_
for p in xrange(7,0, -1):
    parliment = "A%d" % p
    print p

对于其他值,类似的循环也同样有效:

^{pr2}$

您可以很容易地按照适当的顺序嵌套循环以生成所需的组合。啊!在

编辑:

字符串格式非常有用,下面是如何使用示例进行设置:

# Just create a string with the format specifier in it: %.4d - a [d]ecimal with a
# precision/width of 4 - so instead of 3 you'll get 0003
search_url = "http://www.europarl.europa.eu/sides/getDoc.do?type=REPORT&mode=XML&reference=A7-2010-%.4d&language=EN"

# This creates a Python generator. They're super powerful and fun to use,
# and you can iterate over them, just like a collection.
# 1 is the default step, so no need for it in this case
for number in xrange(1,190):   
    print search_url % number

String formatting接受一个带有各种说明符的字符串-您可以识别它们,因为它们中有%后跟%和一个元组,该元组包含格式字符串的参数。在

如果要添加年份和参数,请将字符串更改为: search_url = "http://www.europarl.europa.eu/sides/getDoc.do?type=REPORT&mode=XML&reference=A%d-%d-%.4d&language=EN"

重要的变化是: reference=A%d-%d-%.4d&language=EN

这意味着您需要传递3个小数,如下所示:

print search_url % (parliment, year, number)

相关问题 更多 >