Как заполнять такие формы с помощью Scrapy - PullRequest
0 голосов
/ 21 июня 2019

Ссылка на сайт - http://www.prsuuniv.in/login?logout#

После перехода на сайт перейдите на вкладку «Результаты» на панели навигации и выберите «sem-exam dec-jan 2018-19»

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Вам необходимо провести реверс-инжиниринг, изучив сайт с помощью инструмента для разработки современного браузера и прочитав некоторый 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, чтобы получить тот же результат, что и из браузера.

0 голосов
/ 21 июня 2019

Я думаю, вы можете вместо этого Селен .

Сайт, на который вы ссылаетесь, использует Javascript для вызова окна результатов. Вы не можете найти его в HTML-источнике веб-страницы.

Selenium симулирует браузер, включенный с помощью javascript. Вы можете искать элементы, ждать их загрузки и нажимать на них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...