通过AJAX调用GET请求标头中的额外?=和数字

时间:2014-02-12 09:58:09

标签: jquery python ajax scrapy

我正在尝试使用Python某种类型的网站(例如this one)使用AJAX请求jquery来加载其中一些内容(我是也知道非常好的帖子here,但目前我觉得Selenium对我的问题可能没必要。)

我可以看到使用Firebug,当我加载菜单时,Cookie会以逻辑方式设置,使用编号系统对以下事件进行分组:

(Sport, Country, Competition, Event) 

e.g。所有足球,英格兰赛事的数据都是

(7, 55,0,0)

然后,当调用javacript函数updateCenter()时,它使用这组cookie根据这些cookie值构建URL,如:

 var loadUrl = "/_betting/getCenterColumn/" + centerStateCookie + "/" + selectedSport
 + "&" + selectedCategory + "&" + selectedCompetition + "&" + selectedEvent + "&" + 
 selectedLiveNowEvent + "&" + expandBetNbrInActiveSettledBets;

对于我上面的例子,这看起来像:

/_betting/getCenterColumn/displayEventsFromCategory/7&55&0&0&0&0

最后,AJAX请求使用从该URL加载的内容更新中心DIV: (.html(ajax_load)初始调用只是在处理请求的同时加载一个漂亮的whirly计时器gif:)

$("#PluginBettingCenterContent").html(ajax_load).load(loadUrl);

一切都很好,但Firebug XHR请求实际上显示请求的GET链接不是上面的但是附加了一些数字:

 GET /_betting/getCenterColumn/displayEventsFromCategory/7&55&0&0&0&0?_=1392198690842

?_=1392198690842请求中的AJAX来自何处?

由于我可以轻松地抓取并构建进入AJAX加载的URL,我希望只是直接删除这些URL,但我不明白最后一组数字和{{1}附加到此URL GET请求,以及我如何模拟计算它们....

1 个答案:

答案 0 :(得分:1)

URL中的timestamp参数可能是可选的。

但是,如果您希望尽可能接近浏览器,则可以手动附加时间戳:

>>> import time
>>> url = 'http://example.com/index'
>>> '%s?_=%d' % (url, time.time() * 1000)
'http://example.com/index?_=1392249064418'