2014-02-12 2 views
0

Я пытаюсь очистить с помощью Python определенный тип веб-сайта (например, this one), который использует AJAX запросов с jquery для загрузки некоторого содержимого (I ' м также знал о очень хорошем сообщении here, но на данный момент я думаю, что Селен может быть ненужным для моей проблемы).Экстра? = И числа в заголовке запроса GET при вызове через AJAX

Я могу видеть с помощью Firebug, что, когда я загружаю меню печенья получить набор в логическом порядке, которые используют систему нумерации для групповых мероприятий, как:

(Sport, Country, Competition, Event) 

например для всех событий Футбол, Англия цифры

(7, 55,0,0) 

Тогда, когда функция Javacript updateCenter() называется, он использует этот набор файлов, для создания URL на основе этих значений печенья, как:

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

в моем примере выше это выглядит следующим образом:

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

Наконец AJAX запрос сделан, чтобы обновить центр DIV с содержимым, загруженным с этим URL: (.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 запроса?

Так как я могу легко соскрести и построить URL, который входит в AJAX нагрузку, я надеялся только, чтобы очистить эти адреса непосредственно, но я не понимаю, что окончательный набор чисел и ?_= прилагается к настоящему запросу URL GET есть и как я могу имитировать их вычисление ....

+1

это эпоха метки времени, и это добавляется для предотвращения кэширования: http://stackoverflow.com/questions/12225576/why-some-numbers-are-added-to-url-of-ajax-object-and-how-to-remove-them –

+0

@DavidFregoli О, вы имеете в виду, что самые новые коэффициенты всегда загружаются, а не некоторые старой странице, клиент может сидеть там с предыдущего вызова? Тогда я смогу смоделировать эту метку времени из моего кода python. Я не могу точно видеть, где именно на сайте 'betting.js' на сайте, эта метка времени добавляется к вызову ajax. Это происходит внутри jquery? – fpghost

+1

Да, это внутренняя вещь, см. Связанный URL (его можно отключить). Ответы серверов кеш-серверов на основе строки url, так что это в основном обходной путь –

ответ

1

Скорее всего, параметр временной метки в URL-адресе является необязательным.

Однако, если вы хотите, чтобы действовать так близко, как браузер, вы можете добавить метку времени вручную:

>>> import time 
>>> url = 'http://example.com/index' 
>>> '%s?_=%d' % (url, time.time() * 1000) 
'http://example.com/index?_=1392249064418' 
Смежные вопросы