我想使用mechanize制作一个python脚本,以特定用户身份登录。转到该网站上的特定页面,然后填写提交表单。我已成功登录,转到该页面,填写表格,但是当我提交时,我得到一个奇怪的错误。
import mechanize
#from mechanize import ParseResponse, urlopen, urljoin
br=mechanize.Browser()
cj=mechanize.CookieJar()
br.set_cookiejar(cj)
br.set_handle_robots(False)
request=mechanize.Request("http://www.reddit.com/")
response=br.open("http://www.reddit.com/")
cj.extract_cookies(response, request)
request2=mechanize.Request("http://www.reddit.com/r/berkeley/about/flair/? name=bezzerkeley")
cj.add_cookie_header(request2)
br.select_form(nr=1)
br["user"]="bezzerkeley"
br["passwd"]="xxxxxxx"
response2=br.submit()
cj.extract_cookies(response2, request2)
response3=br.open("http://www.reddit.com/r/berkeley/about/flair/?name=bezzerkeley")
request3=mechanize.Request("http://www.reddit.com/r/berkeley/about/flair/")
cj.extract_cookies(response3, request3)
cj.add_cookie_header(request3)
br.select_form(nr=8)
br["text"]="BOT TEST COMPLETE"
我xxxx了用于登录的密码。在我运行此代码并执行br.submit()后,我收到HTTP错误404:Not Found。如果我实际上以这种方式提交此表单,浏览器会将我重定向到包含提交信息的同一页面。
额外信息:运行上述代码后,当我执行print br.form时,我得到:
(POST http://www.reddit.com/post/flair application/x-www-form-urlencoded
(HiddenControl(name=bezzerkeley) (readonly))
(TextControl(text=BOT TEST COMPLETE))
(TextControl(css_class=))
(SubmitButtonControl((None)=) (readonly)))
如果需要,我可以提供更多信息。有谁知道我为什么会收到这个错误?