如何使用Python登录网页并检索cookie供以后使用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (128)

我想使用python下载和解析网页,但是要访问它,我需要几个cookie集。因此,我需要首先通过https登录到网页。登录时需要向/login.php发送两个post params(用户名、密码)。在登录请求期间,我希望从响应头检索cookie,并将它们存储起来,以便在请求中使用它们下载网页/data.php。

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

提问于
用户回答回答于

requests库

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)
用户回答回答于
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查看任何页面,请执行以下操作。

扫码关注云+社区

领取腾讯云代金券