import urllib2
import urllib
url = "http://www.torn.com/authenticate.php"
username = raw_input("Your username; ")
password = raw_input("Your password: ")
query = {'player':username, 'password':password}
data_query = urllib.urlencode(query)
sending_data = urllib2.Request(url, data_query)
print sending_data()
response = urllib2.urlopen(sending_data)
print "You are currently logged unto to:", response.geturl()
print response.read()我如何实现cookielib来创建会话,并请逐行解释谢谢
发布于 2013-08-08 03:43:12
from cookielib import CookieJar
cj = CookieJar()
login_data = urllib.urlencode({'j_username' : username, 'j_password' : password})
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.open("http://www.torn.com/authenticate.php", login_data)首先,您希望初始化您的CookieJar。然后对凭据进行编码,因为它们需要以某种形式发送,以便由PHP服务器读取。然后,您必须初始化一个基本上是HTTP的opener,并将其配置为使用您的CookieJar。然后向服务器提交登录信息,以创建会话并生成cookie。要继续使用这些cookie,请使用opener.open()而不是urllib2.urlopen (尽管仍然可以使用urllib2.Request()来生成请求。
发布于 2013-08-08 03:43:32
为此,您需要使用OpenerDirector。来自文献资料
import cookielib, urllib2
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r = opener.open("http://example.com/")因此,为了传递数据,您的代码应该如下所示:
import urllib2
import urllib
import cookielib
url = "http://www.torn.com/authenticate.php"
username = raw_input("Your username; ")
password = raw_input("Your password: ")
query = {'player':username, 'password':password}
data_query = urllib.urlencode(query)
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
response = opener.open(url, data_query)
print "You are currently logged unto to:", response.geturl()
print response.read()https://stackoverflow.com/questions/18117347
复制相似问题