编辑:为了澄清我正在使用python,并希望在python中执行此操作。
我正在为我们大学的研究项目收集数据。基本上我需要从监控欧洲议会的网站上获取大量信息。以下是一个网站的网址如何显示的示例:
地址参考部分后面的数字是指: A7 =议会开会(以前的议会是A6等), 2010 =年, 0190 =文件编号。
我想要做的是创建一个包含不同议会所有网址的变量,这样我就可以遍历这个变量并从网站上获取信息。
P.S:我试过这个: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
但是这给了我以下错误: Traceback(最近一次调用最后一次): 文件“”,第7行,in IndexError:列表索引超出范围
答案 0 :(得分:1)
你能用python和wget吗?循环遍历现有的会话,并创建一个字符串给wget?或者这有点矫枉过正?
答案 1 :(得分:1)
如果我理解正确的话,你只是希望能够循环讨论这些问题吗?
即。你想要A7,A6,A5 ......?
如果这是你想要的,一个简单的循环可以处理它:
for p in xrange(7,0, -1):
parliment = "A%d" % p
print p
对于其他值,类似的循环也可以正常工作:
for year in xrange(2010, 2000, -1):
print year
for filenum in xrange(100,200):
fnum = "%.4d" % filenum
print fnum
您可以按照正确的顺序轻松嵌套循环,以生成所需的组合。 HTH!
编辑:
字符串格式化非常有用,以下是您可以使用示例执行此操作的方法:
# 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带有一个带有各种说明符的字符串 - 你会识别它们,因为它们中有% - 后跟%和一个包含格式字符串参数的元组。
如果要添加年份和parliment,请将字符串更改为:
search_url = "http://www.europarl.europa.eu/sides/getDoc.do?type=REPORT&mode=XML&reference=A%d-%d-%.4d&language=EN"
这里有重要的变化:
参考= A %d
- %d
- %.4d
&安培;语言= EN
这意味着您需要传递3个小数,如下所示:
print search_url % (parliment, year, number)
答案 2 :(得分:1)
很抱歉,我不能将此作为评论,但我的分数还不够高。
查看上面评论中引用的代码,您的问题是您正在尝试添加字符串和整数。虽然有些语言可以进行即时转换(当它工作时很有用,但是当它没有时会很困惑),你必须用str()
显式转换它。
应该是这样的:
"http://firstpartofurl" + str(number[i]) + "restofurl"
或者,您可以使用字符串格式(使用%
等作为Wayne的答案)。
答案 3 :(得分:0)
使用硒。由于它控制使用真正的浏览器,它可以使用复杂的javascript处理网站。可以使用许多语言绑定,包括python。