Очистка ASP.NET с Python и urllib2 - PullRequest
2 голосов
/ 12 мая 2011

Я пытался (безуспешно, я мог бы добавить) очистить веб-сайт, созданный с помощью стека Microsoft (ASP.NET, C #, IIS), используя Python и urllib / urllib2.Я также использую cookielib для управления файлами cookie.Потратив долгое время на профилирование сайта в Chrome и изучение заголовков, я не смог найти работающее решение для входа в систему. В настоящее время, пытаясь заставить его работать на самом базовом уровне, яжестко закодированную строку URL со всеми соответствующими данными формы (даже с состоянием просмотра и т. д.).Я также передаю действительные заголовки.

Ответ, который я получаю в настоящее время, гласит:

29 | pageRedirect || /? Aspxerrorpath = / default.aspx |

Я не уверен, как истолковать вышесказанное.Кроме того, я довольно подробно рассмотрел код на стороне клиента, используемый при обработке полей входа в систему.

Вот как это работает: Вы вводите свое имя пользователя / пароль и нажимаете «Логин»кнопка.Нажатие клавиши Enter также имитирует нажатие этой кнопки.Поля ввода не в форме.Вместо этого на указанной кнопке входа в систему есть несколько событий onClick (большинство из которых только для эстетики), но одно из них обрабатывает проверку.Он выполняет некоторые элементарные проверки перед отправкой на серверную часть.Основываясь на веб-ресурсах, он определенно использует .NET AJAX.

При обычном входе на этот сайт вы запрашиваете домиан как POST с данными формы вашего имени пользователя и пароля, между прочим.Затем существует какая-то перезапись или переадресация URL, которая приводит вас к содержательной странице url.com/twitter.При попытке получить прямой доступ к url.com/twitter перенаправляет вас на главную страницу.

Следует отметить, что я решил не указывать этот URL.Я не делаю ничего плохого, просто автоматизирую очень монотонную проверку один раз в разумные промежутки времени (я знаком с сострадательной очисткой экрана).Тем не менее, было бы тривиально связать мою учетную запись StackOverflow с этой учетной записью в том случае, если это не осчастливило владельцев домена.

Мой вопрос: Я имеюВ прошлом я мог успешно входить и автоматизировать сервисы, ни один из которых не был основан на .NET.Есть ли что-то другое, что я должен делать, или, может быть, я что-то упускаю?

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

Для любого другого, кто может оказаться в подобном положении в будущем :

Я просто хотел бы отметить, что у меня был большой успех с пользовательским скриптом Greasemonkey в Chrome для выполнения всех моих операций по скрепированию и автоматизации. Я обнаружил, что это намного проще, чем Python + urllib2 (по крайней мере, для этого конкретного случая). Пользовательские сценарии написаны на 100% Javascript.

1 голос
/ 12 мая 2011

При очистке веб-приложения я использую либо:

1) WireShark ... или ...

2) Журнал прокси-сервера (который регистрирует заголовки и полезную нагрузку)

Затем я сравниваю то, что делает настоящее приложение (в данном случае, как ваш браузер взаимодействует с сайтом) с журналами скребка. Обработка различий приведет вас к рабочему решению.

...