Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过urllib/urllib2发布请求?_Python_Post_Request_Urllib2_Urllib - Fatal编程技术网

Python 通过urllib/urllib2发布请求?

Python 通过urllib/urllib2发布请求?,python,post,request,urllib2,urllib,Python,Post,Request,Urllib2,Urllib,在你说什么之前,我已经环顾四周了,但是解决方案没有起作用。我需要对Python中的登录脚本发出post请求。URL看起来像,然后它通过POST接受用户名和密码。有人能帮我吗 我试过: import urllib, urllib2, cookielib cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) opener.addheaders.append(('User-a

在你说什么之前,我已经环顾四周了,但是解决方案没有起作用。我需要对Python中的登录脚本发出post请求。URL看起来像,然后它通过POST接受
用户名
密码
。有人能帮我吗

我试过:

import urllib, urllib2, cookielib

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', 'http://www.hellboundhackers.org/index.php') )

login_data = urllib.urlencode({'username' : '[redacted]',
                               'password' : '[redacted]'
                               })

resp = opener.open('http://[redacted].org/index.php?act=login', login_data)
print resp.read()
resp.close()
还有一点修改:

import urllib, urllib2, cookielib

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', 'http://www.hellboundhackers.org/index.php') )

login_data = urllib.urlencode({'act' : 'login',
                               'username' : '[redacted]',
                               'password' : '[redacted]'
                               })

resp = opener.open('http://[redacted].org/index.php', login_data)
print resp.read()
resp.close()

您可能需要查看HTML源代码以了解登录表单操作URL是什么。有时它与页面URL本身相同,但可能不同。但由于您尚未显示实际的URL,我们无法在这方面帮助您

元素可能类似于:

<form method="POST" action="/do_login">


在这种情况下,您可以在POST url中使用
/do\u login

当然可以从Python发出POST请求。请展示您尝试过的内容,否则我们无法告诉您出了什么问题。请具体说明您尝试过的解决方案,以及您遇到的问题/错误。我刚刚编辑了这篇文章。谢谢我和该网站的管理员谈过,他说它使用POST。不过我还是会查的。谢谢
好的,这是同一页。那你怎么知道它不起作用了?你有任何错误吗?我研究了输出(
print resp.read()
),在顶部,登录/注册按钮仍然存在。我还尝试了
test=opener.open('http://[redact].org/index.php?act=“app\u view”)
然后
打印test.read()在RESP行之后,说我没有登录,所以我无法访问该页面。可能需要考虑表单的其他方面,如隐藏字段或cookie。这些在登录表单上是常见的,并且您可能需要提供额外的信息。这可以变得相当复杂,并且可以很好地理解窗体和窗体。浏览器的工作是必不可少的。是的,有一个隐藏的字段。我的朋友发现了它:P。谢谢!