如何使用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) 
  • 这个socket.gaierror是什么意思?
  • 使用ftplib下载目录树
  • 从numpy.timedelta64值提取天
  • urllib2和json
  • 双等于vs是在Python中
  • 我如何在Python 3中使用raw_input
  • SQLAlchemy:打印实际的查询
  • python:使用matplotlib使用字典绘制一个栏
  • 如何在Mac OS X上安装MySQLdb(Python数据访问库到MySQL)?
  • 在Python中解压缩文件
  • 将默认的Python版本从2.4更改为2.6