检查Web内容是否已更改(OSM-tile,python)

时间:2015-11-13 17:14:57

标签: python urllib2 openstreetmap

在我的Python代码中,我正在从Openstreetmap(OSM)下载磁贴。出于性能和流量原因,它们存储在临时存储中。但是在重用这些数据之前,我想检查这些数据是否仍然是最新的。

这是简单下载的方式:

import urllib2

# Normal import without Version control:
url = r"http://a.tile.openstreetmap.org/1/1/1.png"
imgstr = urllib2.urlopen(url).read()

我正在搜索一些类似于此的内容(伪代码)

imgstr = ...        # Value from database
local_version = ... # Value from database
online_version = getolineversionnumber(url)
if not(online_version==local_verion):
    imgstr = urllib2.urlopen(url).read()
    version = online_version

是否有像getolineversionnumber这样的功能?

**问题通过scai回答。不需要更多答案。 **

1 个答案:

答案 0 :(得分:0)

向其他读者发布自己问题的答案是一种很好的做法。这是我学到的。

我正在搜索的属性称为etag(https://en.wikipedia.org/wiki/HTTP_ETag)。 并访问如下:

import urllib2
url = r"http://a.tile.openstreetmap.org/1/1/1.png"
request = urllib2.Request(url)
opener = urllib2.build_opener()
firstdatastream = opener.open(request)
online_version=firstdatastream.headers.dict['etag']