Вам необходимо провести реверс-инжиниринг, изучив сайт с помощью инструмента для разработки современного браузера и прочитав некоторый js-код с сайта.
Я сделал это и обнаружил, что:
Форма загружается с http://www.prsuuniv.in/home/result19,
Он выполняет запрос ajax после того, как вы заполнили форму и нажали кнопку «Поиск».
URL-адрес запроса ajax создается из значений поля
var urlname="/home/student/result/msw/check19/"+semester+"/"+studentty+"/"+examroll+"/"+coursename+"/resultrack";
3 из этих четырех значений поля являются только значениями выбранной опции, в то время как examroll
генерируется с некоторыми случайными значениями и значением выбранной опции,
var examroll= btoa(Math.floor(1000 + Math.random() * 9000)+$('#examroll').val()+"@@"+Math.floor(1000 + Math.random() * 9000));
и все поля в кодировке base64, вам нужно сгенерировать этот URL тем же методом.
Так что просто создайте URL-адрес по входным значениям и отправьте Request
, если ваш паук получает метку опции (например, Course name=B.Com.
) в качестве ввода, то вам нужно сначала запросить http://www.prsuuniv.in/home/result19 и преобразовать B.Com.
к действительному значению bcom
с помощью xpath
или css
операций, в противном случае просто отправьте запрос результата со встроенным URL.
Также обратите внимание, что вам нужно передать те же заголовки, что и из браузера, например X-Requested-With: XMLHttpRequest
, чтобы получить тот же результат, что и из браузера.