在Python中模拟HTTP发布请求
|
我正在尝试在PHP页面中发送HTTP发布请求。我尝试了Java和Python(这是我第一次使用Python),我可以说它们对我来说都差不多。实际上,它们仅对我的测试PHP页面有效。由于某些原因,它们都不适合我的目标PHP页面。
我认为,可能导致邮寄请求失败的两个原因可能是:
可能会发生某种重定向
服务器需要一个适当的cookie
接下来,您将找到目标页面的HTML代码和应该运行的Python代码。
HTML:
<form id=\"m713a0moduleform_2\" method=\"post\" action=\"http://www.X.Y/index.php?page=login\" class=\"cms_form\">
<input type=\"hidden\" name=\"mact\" value=\"FrontEndUsers,m713a0,do_login,1\" />
<input type=\"hidden\" name=\"m713a0returnid\" value=\"794\" />
<input type=\"hidden\" name=\"page\" value=\"794\" />
<input type=\"hidden\" name=\"m713a0form\" value=\"login\" />
<input type=\"text\" class=\"cms_textfield\" name=\"m713a0feu_input_username\" id=\"m713a0feu_input_username\" value=\"\" size=\"10\" maxlength=\"40\" />
<input type=\"password\" class=\"cms_password\" name=\"m713a0feu_input_password\" value=\"\" size=\"10\" maxlength=\"10\" />
<input class=\"cms_submit\" name=\"m713a0feu_btn_login\" id=\"m713a0feu_btn_login\" value=\"Sign in\" type=\"submit\" class=\"signin_button\" />
</form>
蟒蛇:
import urllib
params = urllib.urlencode({\"mact\":\"FrontEndUsers,m713a0,do_login,1\",\"m713a0returnid\":\"18\",\"page\":\"18\",\"m713a0form\":\"login\",\"m713a0feu_input_username\":\"Z\",\"m713a0feu_input_password\":\"W\",\"m713a0feu_btn_login\":\"Sign in\"})
f = urllib.urlopen(\"http://www.X.Y/index.php?page=login\", params)
print f.read()
我收到以下错误。有任何想法吗?
追溯(最近一次通话):
文件\“ / X / Y / Z / NewPythonProject2 / src / newpythonproject2.py \”,第34行,在
从paste.proxy导入TransparentProxy
ImportError:没有名为粘贴的模块
没有找到相关结果
已邀请:
1 个回复
缮记箔
要么
然后在脚本中...
如果您需要做一些更奇特的事情,例如在请求之间维护cookie(例如将cookie传回),则可以使用WebTest,而只需进行一些更改