Форум сайта python.su
Цель: залогиниться на сайте из программы питона с дальнейшей целью парсинга страниц.
Подход: при авторизации через браузер, включаю снифер (в моем случае httpFox для Firefox) с целью узнать структуру POST-запроса.
Достиг: авторизация ВКонтакте
import urllib
import urllib2
''' вход в vkontakte.ru '''
urllib2.install_opener(urllib2.build_opener(urllib2.HTTPCookieProcessor))
params = urllib.urlencode({'email': 'blabla@gmail.com', 'pass': 'blablabla'})
request = urllib2.Request('http://vkontakte.ru/login.php', params)
f = urllib2.urlopen(request)
''' все тоже, кроме этих строчек '''
''' вход в intuit.ru '''
params = urllib.urlencode({'login': 'mylogin', 'password': 'mypass'})
request = urllib2.Request('http://www.intuit.ru/user/login/', params)
''' вход в habrahabr.ru '''
params = urllib.urlencode({'login': 'mylogin', 'password': 'mypass'})
request = urllib2.Request('http://habrahabr.ru/login/', params)
Отредактировано (Окт. 28, 2011 00:28:25)
Офлайн
так я парсил события http://pastebin.com/zP1LPY7u
Офлайн
Проблема не в парсинге, а в авторизации. Причем авторизация вконтакте сделана и рабочая.
Не могу понять, почему на Habrahabr.ru и Intuit.ru не срабатывает
Отредактировано (Окт. 28, 2011 00:28:54)
Офлайн
Проблема не решена, прошу кто знает в чем проблема - ответить.
Офлайн
Смотри какие запросы на проблемных сайта уходят, наверняка там генерируются дополнительные поля, да и вообще запрос может быть сформирован не формой HTML, а клиентским кодом (XMLHttpRequest). Смотри трафик браузера, включай голову, имитируй правильные запросы.
1. Отключи JS в браузере и посмотри, будет ли работать.
2. Посмотри скрытые поля, которые почти всегда есть и иногда нужны серверу.
3. Смотри трафик браузера, делай выводы.
..bw
Офлайн