Печенье Python 3 httplib2 - PullRequest
       14

Печенье Python 3 httplib2

3 голосов
/ 08 сентября 2011

Исправлено, httplin2 не может обрабатывать более одного куки, патч можно найти здесь: http://code.google.com/p/httplib2/issues/detail?id=146

Я пишу скрипт входа в Facebook, чтобы получать последние уведомления, но У меня проблема. Я изменил с urllib на httplib2, потому что это казалось проще и быстрее для меня. Используя urllib, я смог получить исправьте файл cookie и используйте его, когда мне понадобится уведомления, теперь я использую пример со страницы httplib:

user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN;

rv: 1.9.2.8) Gecko / 20100722 Firefox / 3.6.8 ' headers = {'User-Agent': user_agent, 'Content-type': application / x-www-form-urlencoded, Accept: 'Текст / HTML, приложение / XHTML + XML, приложение / XML; д = 0,9, / ; д = 0,8', 'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Referer': 'http://m.facebook.com/'} data = {'email': 'myusername', 'pass': 'mypassword', 'post_form_id': '', 'charset_test': '', 'version': 1, 'ajax': 1, 'pxr': 1, 'gps': 1, 'login': 'Entrar'} ответ, содержание = h.request ( "http://www.facebook.com/login.php?m=m&refsrc=http://m.facebook.com/&refid=0", «POST», urllib.parse.urlencode (data), заголовки = заголовки)

И вот заголовок, который я получаю:

{'status': '200', 'x-cnection': 'close', 'content-location':

http://m.facebook.com/home.php?refsrc=http%3A%2F%2Fm.facebook.com%2F&refid=0&m_sess=***tAm60&_rdr', 'Transfer-Encoding': 'Chunked', 'Set-Cookie': «Datr = ****** F-OQsTCnbw0Caa; истекает = пт, 06 сентября 2013 20:33:26 GMT; Путь = /; домен = .facebook.com; httponly ',' expires ':' Sat, 01 Jan 2000 00:00:00 GMT ',' x-fb-server ': '10 .62.188.41', 'content-length': '26702', '-content-encoding': 'gzip', 'pragma': 'no-cache', 'cache-control': 'private, no-cache, no-store, must-revalidate', 'date': 'Wed, 07 Sep 2011 20:33:27 GMT', 'p3p': 'CP = "Facebook не есть политика P3P. Узнайте, почему здесь: http://fb.me/p3p"', 'content-type': «Текст / html; charset = utf-8 ',' x-frame-options ':' DENY '}

Если я не использую параметр h.follow_all_redirects = True, он не будет перенаправить меня на домашнюю страницу, но установленные куки находятся на первом страница перед перенаправлением. Я получаю печенье: set-cookie': 'datr=F*******F-OQsTCnbw0Caa; expires=Fri, 06-Sep-2013 20:33:26 GMT; path=/; domain=.facebook.com; httponly'

Но этих файлов cookie недостаточно, чтобы активировать сеанс. в браузер Я получаю печенье большего размера:

datr=EzIL*********e-JFJL; lu=wgrr3q**********; locale=es_LA; L=2;

акт = 13 *****; m_user = ***% 40gmail.com% 3A526402587% 3AN ******% 3A0% 3Av_1% 2Cajax_1% 2Cwidth_1600% 2Cpxr_1% 2Cgps_1% 3A13 *** 1099; р = 182; П = 1; W = 13 **** 99; reg_fb_ref ​​= HTTPS% 3A% 2F% 2Fwww.facebook.com% 2Flogin.php% 3fm% 3DM% 26refsrc% 3Dhttp% 253A% 252F% 252Fm.facebook.com% 252F% 26refid% 3D0

В чем может быть проблема?

1 Ответ

1 голос
/ 10 сентября 2011

Исправлено, httplin2 не может обрабатывать более одного куки, патч можно найти здесь: http://code.google.com/p/httplib2/issues/detail?id=146

...