当我获得Set-Cookie并尝试使用它时,我似乎不会登录Facebook ...
import urllib, urllib2
data = urllib.urlencode({"email":"swagexample@hotmail.com", "pass":"password"})
request = urllib2.Request("http://www.facebook.com/login.php", data)
request.add_header("User-Agent", "Mozilla 5.0")
response = urllib2.urlopen(request)
cookie = response.headers.get("Set-Cookie")
new_request = urllib2.Request("http://www.facebook.com/login.php")
new_request.add_header("User-Agent", "Mozilla 5.0")
new_request.add_header("Cookie", cookie)
new_response = urllib2.urlopen(new_request)
if "Logout" in new_response.read():
print("Logged in.") #No output
为什么?
答案 0 :(得分:1)
首先,Set-Cookie
标头格式与Cookie
标头不同。
Set-Cookie
标头包含其他信息(doamin,expire,...),您需要转换它们以将其用于Cookie
标头。
cookie = '; '.join(
x.split(';', 1)[0] for x in response.headers.getheaders("Set-Cookie")
)
即使您执行上述操作,仍然无法获得所需内容,因为默认的urllib2处理程序无法处理重定向cookie。