2015-07-19 3 views
0

Я пытаюсь войти в reddit с помощью python (а не PRAW). Ниже приведен кодlogin reddit using mechanize python

import mechanize 
import cookielib 
import urllib 
import logging 
import sys 

br = mechanize.Browser() 
cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

br.set_handle_equiv(True) 
br.addheaders=[('user-agent','Mozilla-Firefox')] 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 

r= br.open('http://www.reddit.com') 

    # Select the second (index one) form 
br.select_form(nr=1) 

    # User credentials 
br.form['user'] = 'user' 
br.form['passwd'] = 'passwd' 

    # Login 
x=br.submit() 

this ответ утверждает, что код будет работать. но когда я печатаю x.geturl(). Он дает

'https://www.reddit.com/post/login' 

Так что мой вопрос в том, что этого кода недостаточно для входа в reddit. или я что-то упускаю. А также, как я могу проверить, вошел ли я в систему?

Спасибо

ответ

0

Так что я нашел решение этой проблемы. оказывается, что python неправильно вводил мой пароль. Это было как "******\***". Так что, как понятно, в нем есть обратная косая черта. Но в python обратная косая черта - это escape-символ. Поэтому, чтобы исправить это, я сделал это «****** \\ ***». Обратите внимание на двойную обратную косую черту. В противном случае этот метод безупречен, и он работает.

Надеюсь, что когда-нибудь это поможет кому-то.