如何使用Python登录到网页和检索cookie以备后用?

我想使用python下载和解析网页,但要访问它,我需要一些饼干设置。 所以我需要先通过https登录到网页。 登录时刻包括发送两个POST PARAMS(用户名,密码)到/login.php。 在登录请求期间,我想从响应头中检索cookie并将它们存储起来,以便我可以在请求中使用它们来下载网页/data.php。

我将如何在python(最好是2.6)中做到这一点? 如果可能,我只想使用内置模块。

2 Solutions collect form web for “如何使用Python登录到网页和检索cookie以备后用?”

import urllib, urllib2, cookielib username = 'myuser' password = 'mypassword' cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_data = urllib.urlencode({'username' : username, 'j_password' : password}) opener.open('http://www.example.com/login.php', login_data) resp = opener.open('http://www.example.com/hiddenpage.php') print resp.read() 

resp.read()是你想要打开的页面的直线html,你可以使用opener来使用你的会话cookie来查看任何页面。

这是一个使用优秀的请求库的版本:

 from requests import session payload = { 'action': 'login', 'username': USERNAME, 'password': PASSWORD } with session() as c: c.post('http://example.com/login.php', data=payload) response = c.get('http://example.com/protected_page.php') print(response.headers) print(response.text) 
  • 如何清除ipython中的variables?
  • collections.defaultdict是如何工作的?
  • 不可变与可变types
  • 在使用“打印”时语法无效?
  • 我如何使用numpy.correlate做自相关?
  • 将相同的string追加到Python中的string列表中
  • 从python执行命令行程序
  • 在Python中解压一个列表?
  • 如何获得给定的装饰器的Python类的所有方法
  • 使用Django将数千条logging插入SQLite表的有效方法是什么?
  • 如何在scipy / matplotlib中绘制和注释层次聚类树状图