私は機械化(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には何を入れるべきかわかりませんでした。それらのフォームに名前を付けます。
私は今、公式に愚かな感じがする、あなたの答えは働いて、ありがとう! – Bhaxy