在Python中从多个URL(循环)获取数据

时间:2017-11-21 20:40:49

标签: python loops urllib

我运行此代码获得31个网址,这些网址都给了我24个垃圾箱,后面有一个数字。

eventurl = "http://data.hisparc.nl/show/source/eventtime/501/2017/1/"
for dag in range(1, 32):
    print(eventurl + str(dag))

我现在想要使用运行此代码后打印的所有网址中的数据。我想指定数据来获取我之前谈论的箱子后面的数字。当我使用1个url(我在下面使用2017/1/1作为示例)时,我运行此代码:

eventurl = "http://data.hisparc.nl/show/source/eventtime/501/2017/1/1/"
data = urllib.request.urlopen(eventurl)
data = data.read().decode()
events = data.split("# bin\tvalue")
nevents = [d.split("\t")[1] for d in events[1].strip().split("\n")]
nevents = list(map(int, nevents))

我后来在图表中使用了24个数字。如果我试试这个:

eventurl = "http://data.hisparc.nl/show/source/eventtime/501/2017/1/"
for dag in range(1, 32):
    print(eventurl + str(dag))

data = urllib.request.urlopen(eventurl + str(dag))
data = data.read().decode()

events = data.split("# bin\tvalue")
nevents = [d.split("\t")[1] for d in events[1].strip().split("\n")]
print(nevents)

然后只出现最后24个分档(2017/1/31)。

任何人都可以帮助我,以便从2017/1/1到2017/1/31获得所有垃圾箱吗?

1 个答案:

答案 0 :(得分:0)

你刚刚遇到了缩进问题:

eventurl = "http://data.hisparc.nl/show/source/eventtime/501/2017/1/"
for dag in range(1, 32):
    print(eventurl + str(dag))

    data = urllib.request.urlopen(eventurl + str(dag))
    data = data.read().decode()

    events = data.split("# bin\tvalue")
    nevents = [d.split("\t")[1] for d in events[1].strip().split("\n")]
    print(nevents)