import mechanize
url = 'http://steamcommunity.com'
br=mechanize.Browser(factory=mechanize.RobustFactory())
br.open(url)
print br.request
print br.form
for each in br.forms():
print each
print
上記のコードの結果に:このページのフォームでmechanizeを失敗させる方法はありますか?
Traceback (most recent call last):
File "./mech_test.py", line 12, in <module>
for each in br.forms():
File "build/bdist.linux-i686/egg/mechanize/_mechanize.py", line 426, in forms
File "build/bdist.linux-i686/egg/mechanize/_html.py", line 559, in forms
File "build/bdist.linux-i686/egg/mechanize/_html.py", line 228, in forms
mechanize._html.ParseError
私の具体的な目標は、ログインフォームを使用することですが、私も任意のフォームがあることを認識して機械化を取得することはできません。 のフォームbr.select_form(nr=0)
を選択する最も基本的な方法であると私が思うものを使用しても、同じトレースバックになります。フォームのenctypeはmultipart/form-dataで、違いがあれば可能です。
私はこの2つの質問にすべてが従っていると思います:どのようにしてこのページで作業する機械化ができますか?それが不可能な場合、クッキーを維持しながら別の方法がありますか?
編集:下記のとおり、これは 'https://steamcommunity.com'にリダイレクトされます。
Mechanizeのは成功し、次のコードを見ることができるようにHTMLを取得することができます:あなたは、ウェブサイトがHTTPS(SSL)サーバーにリダイレクトされていることを
url = 'https://steamcommunity.com'
hh = mechanize.HTTPSHandler() # you might want HTTPSHandler, too
hh.set_http_debuglevel(1)
opener = mechanize.build_opener(hh)
response = opener.open(url)
contents = response.readlines()
print contents
私はそれを追加することを忘れませんでした情報、ありがとう。残念ながら、言及した行を追加しても何も変わりません。 –