python Mechanize 400错误请求

python Mechanize 400错误请求,python,request,bots,bad-request,Python,Request,Bots,Bad Request,嗨,我正在尝试使用Python和Mechanize库为浏览器游戏编写一个机器人。我一直坚持使用身份验证步骤,因为当我尝试提交表单时,Python发出了400个错误请求,但浏览器没有问题 Python代码 from mechanize import Browser import mechanize browser = Browser() browser.set_debug_http(True) HEADERS = [('User-agent', 'Mozilla/5.0 (Linux; Andr

嗨,我正在尝试使用Python和Mechanize库为浏览器游戏编写一个机器人。我一直坚持使用身份验证步骤,因为当我尝试提交表单时,Python发出了400个错误请求,但浏览器没有问题

Python代码

from mechanize import Browser
import mechanize

browser = Browser()
browser.set_debug_http(True)
HEADERS = [('User-agent', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Mobile Safari/537.36')]
browser.set_handle_equiv(True)
browser.set_handle_redirect(True)
browser.set_handle_referer(True)
browser.set_handle_robots(False)
browser.addheaders = HEADERS
browser.open('https://it.ogame.gameforge.com/')
browser.viewing_html()
browser.select_form(name='loginForm')
browser['login'] = 'email'
browser['pass'] = 'password'
response = browser.submit()
print(response.read())
请求调试响应

send: 'POST /main/login HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-

Length: 30\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Mobile Safari/537.36\r\nHost: it.ogame.gameforge.com:443\r\nCookie: SID=rkq1jb7h8prj8hstsmgv3tkgv5\r\nReferer: https://it.ogame.gameforge.com/\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nkid=&login=email&pass=password'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Mon, 30 Jul 2018 21:39:52 GMT
header: Server: Apache
header: Vary: Accept-Encoding
header: Content-Length: 214
header: Connection: close
header: Content-Type: text/html; charset=UTF-8
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
  <head>
    <title>400 Bad Request</title>
  </head>
  <body>
    <h1>Bad Request</h1>
    <p>The request could not be understood by the server.</p>
  </body>
</html>
send:'POST/main/login HTTP/1.1\r\n接受编码:标识\r\n内容-
长度:30\r\n连接:关闭\r\n用户代理:Mozilla/5.0(Linux;Android 6.0;Nexus 5 Build/MRA58N)AppleWebKit/537.36(KHTML,如Gecko)Chrome/67.0.3396.99 Mobile Safari/537.36\r\n主机:it.ogame.gameforge.com:443\r\nCookie:SID=rkq1jb7h8prj8hstsmgv3tkgv5\r\n参考:https://it.ogame.gameforge.com/\r\n内容类型:application/x-www-form-urlencoded\r\n\r\nkid=&login=email&pass=password'
答复:“HTTP/1.1 200正常\r\n”
标题:日期:2018年7月30日星期一21:39:52 GMT
标题:服务器:Apache
标题:更改:接受编码
标题:内容长度:214
标题:连接:关闭
标题:内容类型:text/html;字符集=UTF-8
400错误请求
错误的请求
服务器无法理解该请求

网站HTML(仅表单的一部分)


Indirizzo电子邮件:
Il tuo indirizzo电子邮件非有效密码非corretta。
密码:
登录自动公司

有效登录帐户。


乍一看,似乎您正在寻找错误的方法来编写。。。当您在python代码中这样设置值时

browser['login'] = 'email'
browser['pass'] = 'password'
你应该把它改成

browser.form['login'] = 'email'
browser.form['pass'] = 'password'
根据图书馆文件:

browser.form['login'] = 'email'
browser.form['pass'] = 'password'