Найти - Пользователи
Полная версия: POST method + ajax + собрать результаты поиска
Начало » Web » POST method + ajax + собрать результаты поиска
1
summerjazz
Заполняю форму поиска с большим количеством text box-ов (запарило это делать руками каждый раз) с помощью такого кода:

import cookielib, urllib2, urllib

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #cj

urllib2.install_opener(opener)

params = urllib.urlencode(dict(
full_name='John',
sale_id='8747779',
pin_code='1543',
debt='18390',
problems='1',
pnt_sr='',
g_s_nofake='1',
) # на самом деле полей больше раз в 20

data = opener.open('http://search.domain.de/search/', params).read()
f = open("newfile_search.html", "w")
f.write(data)
f.close()
Проблема вот в чем. Сам поиск работает на AJAX. Если в браузере заполнить форму и нажать кнопку <search>, я увижу progress bar, написанный на JS, в котором будет полоса загрузки и что-то в духе “ожидайте, выполняется поиск” (база большая, обычно жду секунд 15-20). После того, как поиск завершен - результаты поиска появляются _под_ формой поиска на той же странице, то есть на сколько я понимаю с помощью AJAX, так как визуально страница не перезагружается.

Вопрос. Как мне собрать результаты поиска выдаваемые с помощью AJAX? С помощью приведенного выше кода я получаю страницу с заполненными полями и очень быстро. Секунды за 2. Хотя такого быстрого поиска я ни разу не видел.

Спасибо за помощь!
o7412369815963
тебе нужно найти кусок кода на js который отправляет запрос на сервер (сам поиск), и этот запрос и посылать самому
summerjazz
А где будет находится, то что мне будет возвращаться этот “кусок”?
summerjazz
Другими словами, как мне получить response, конкретно от того URL, которому я посылаю POST+data
dimabest
поставь в Мозиллу дополнение “Tamper Data” и посмотри куда идет AJAX-запрос и как передаются параметры.

После этого можна запрашивать данные напрямую, минуя страницу с формой. Если в ответе JSON или XML - вообще лафа :)
summerjazz
В ответе XML (смотрю с помощью firefox-firebug), может кто-нибудь привести простой пример, как забрать этот ответ?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB