我试图通过Python中的urllib2访问twitter上的受保护页面(例如我自己的列表),但是此代码始终会将我发送回登录页面。任何想法,为什么?无法使用urllib2访问登录页面
(我知道我可以使用Twitter的API和东西,但想在一般学习如何做到这一点)
感谢, 罗伊
代码:
url = "https://twitter.com/login"
protectedUrl = "https://twitter.com/username/likes
USER = "myTwitterUser"
PASS = "myTwitterPassword"
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-Agent', 'Mozilla/5.0'), ("Referer", "https://twitter.com")]
hdr = {'User-Agent': 'Mozilla/5.0', "Referer":"https://twitter.com"}
req = urllib2.Request(url, headers=hdr)
page = urllib2.urlopen(req)
html = page.read()
s = BeautifulSoup(html, "lxml")
AUTH_TOKEN = s.find(attrs={"name": "authenticity_token"})["value"]
login_details = {"session[username_or_email]": USER,
"session[password]": PASS,
"remember_me": 1,
"return_to_ssl": "true",
"scribe_log": "",
"redirect_after_login": "/",
"authenticity_token": AUTH_TOKEN
}
login_data = urllib.urlencode(login_details)
opener.open(url, login_data)
resp = opener.open(protectedUrl)
print resp.read()