2011-10-25 13 views
3

私は機械化(and following this tutorial)を使ってウェブサイトにログインしようとしています。私はTwitterの上でそれをテストしてみたかったので、これは私が思い付いたスクリプトです:ここでPython mechanizeを使用してウェブサイトにログインしますか?

import mechanize 
import cookielib 

username = 'user' # your username/email 
password = 'pass' # your password 

br = mechanize.Browser() 

# set cookies 
cookies = cookielib.LWPCookieJar() 
br.set_cookiejar(cookies) 

# browser settings (used to emulate a browser) 
br.set_handle_equiv(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 
br.set_debug_http(False) 
br.set_debug_responses(False) 
br.set_debug_redirects(False) 
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time = 1) 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

br.open('http://twitter.com/') # open twitter 

br.select_form(nr=1) # select the form 

br['session[username_or_email]'] = username 
br['session[password]'] = password 
br.submit() # submit the login data 
print(br.response().read) # print the response 

は、私は私のスクリプトを実行したときからPythonの出力です:

$ python twitterLoginTest.py 
<bound method response_seek_wrapper.read of <response_seek_wrapper at 0x8feaeac whose wrapped object = <closeable_response at 0x8feeaac whose fp = <socket._fileobject object at 0x8feb42c>>>> 

(名ファイルのtwitterLoginTest.py)

今、私は本当にその応答が何を意味するかは分かりませんが、実際には正しいとは思われません。

は、だからここ

1)だけでなく、Twitterのスクリプトを(使用してウェブサイトにログインのより良い方法が、任意のウェブサイト、およびログを任意のウェブサイト上で動作するように変更することができ方法があります私の質問ですに)?

2)私のスクリプトでどこが間違っていますか?

3)問題を解決するにはどうすればログインできますか?

私はこの問題がbr.select_form(nr=1)(これは私がフォームを選択した場所)に由来するという仮説を立てていますが、Twitterには何を入れるべきかわかりませんでした。それらのフォームに名前を付けます。

答えて

4

私は最後の行があるべきと考えている:

print(br.response().read()) # print the response 

read()に注意してください。現在、readメソッドを呼び出した結果ではなく、readメソッド自体を印刷しています。

+0

私は今、公式に愚かな感じがする、あなたの答えは働いて、ありがとう! – Bhaxy

関連する問題