Парсинг ASP.NET (средствами python)

Столкнулся с такой проблемой: на сайте gzakupki нужно спарсить инн-ы поставщиков. Заходим сюда gzakupki.ru/guide/supplier.aspx в поиске пишем, например, «0» и имеем 40к страниц выдачи. Как переходить со страницы на страницу? Как снифать запрос правильно (точнее — что)?
  • Вопрос задан
  • 6764 просмотра
Решения вопроса 1
@batalex
Тоже недавно парсил ASP.NET приложение. ИМХО процедура сложная и муторная, и не факт, что за разумное время выполнимая. В моем случае повезло. Я делал так: взял Firefox, поставил Firebug, на вкладке «Сеть» включил логгирование запросов, посмотрел какие запросы идут и какие переменные передаются. Проанализировал, аккуратно передал тоже самое руками. Проблема, как уже сказали, во всяких ViewState, но в моем случае удалось без него обойтись.

Предложу альтернативное решение — Firefox + Selenium WebDriver. Тогда вообще не надо париться, как pagination реализован — просто говорим селениуму, чтобы он «прощелкивал» последовательно страницы, и все.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
AlexShkor
@AlexShkor
CTO at Paralect.com
Не повезло вам однако. Страница написаная на ASP.NET да еще и не очень качественно — лучшая защита от парсинга =)
Почти на каждое действие на ASP.NET странице идет пост формы, с помощью чего ViewState качует с клиента на сервер.
Вам придется отправлять POST запросы на supplier.aspx при этом эмулировать ViewState и метод его энкриптинга.
Теоретически задача решаемая, но я бы посоветовал найти другое решение вашей первоначальной задачи.
Ответ написан
@slowking Автор вопроса
Заюзал ChromeDriver + python-selenium — работает отлично! Всем спасибо за ответы.
Ответ написан
Комментировать
logan
@logan
scrapy вам в помощь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы