urllib2有时返回旧页面 - 返回奇怪的标题

时间:2015-09-03 17:18:08

标签: python json caching urllib

我正在处理一个python脚本,该脚本使用URL返回的JSON。 由于几天url​​lib2返回(有时是)旧的JSON状态。 我确实添加了标题“Cache-Control”:“max-age = 0”等,但有时仍会发生。

如果我打印出我得到的请求信息:

Server: nginx/1.8.0
Date: Thu, 03 Sep 2015 17:02:47 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 3539
Status: 200 OK
X-XHR-Current-Location: /shop/169464.json
X-UA-Compatible: IE=Edge,chrome=1
ETag: "b1fbe7a01e0832025a3afce23fc2ab56"
X-Request-Id: 4cc0d399f943ad09a903f18a6ce1c488
X-Runtime: 0.123033
X-Rack-Cache: miss
Accept-Ranges: bytes
X-Varnish: 1707606900 1707225496
Age: 2860
Via: 1.1 varnish
Cache-Control: private, max-age=0, must-revalidate
Pragma: no-cache
X-Cache: HIT
X-Cache: MISS from adsl
X-Cache-Lookup: MISS from adsl:21261
Connection: close

是否与标题“Age”或“X-Cache-Rack”有关?或者我可以解决它的任何想法?

提前感谢!

1 个答案:

答案 0 :(得分:0)

尝试伪造用户代理,删除cookie,删除会话。

fake_user_agent = ['chrome','firefox','safari']
request = urllib2.Request(url)
request.add_header('User-Agent', get_random(fake_user_agent))
content = urllib2.build_opener().open(request)

如果一切都不起作用,那么尝试使用tor来根据请求更改ip。

如果什么都不起作用,那么你就无法绕过它,因为你肯定是连接到透明代理