ウェブサイトReddit.comにログインし、ページの特定の場所に移動してコメントを送信します。私はこのコードで何が間違っているかはわかりませんが、Redditサイトに変更が反映されていないという点では機能していません。Pythonを使用して機械化してフォームデータを送信し、認証する
import mechanize
import cookielib
def main():
#Browser
br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
#Opens the site to be navigated
r= br.open('http://www.reddit.com')
html = r.read()
# Select the second (index one) form
br.select_form(nr=1)
# User credentials
br.form['user'] = 'DUMMYUSERNAME'
br.form['passwd'] = 'DUMMYPASSWORD'
# Login
br.submit()
#Open up comment page
r= br.open('http://www.reddit.com/r/PoopSandwiches/comments/f47f8/testing/')
html = r.read()
#Text box is the 8th form on the page (which, I believe, is the text area)
br.select_form(nr=7)
#Change 'text' value to a testing string
br.form['text']= "this is an automated test"
#Submit the information
br.submit()
この問題は何ですか?
少なくとも10秒間スリープ状態を追加してみてください。また、ブラウザのフォームを調べる( 'ソースの表示'ではなく、Chromeの「要素の検査」など)、ブラウザのフォームを調べて、ダウンロードしたHTMLと比較する必要があります。 JSによって動的にフィールドが埋め込まれている可能性があります。 – TryPyPy
ところで、RedditにはAPIがありますが、うまくいかないでしょうか? – TryPyPy
ええ、私は睡眠を追加しようとしましょう。私はコメントを提出するためのドキュメントがないので、APIの使い方がわかりません。 – Parseltongue