Python 网页使用cookie(转)

本文介绍使用Python实现登录特定网站的过程。通过实例演示如何利用urllib2和cookielib模块保存Cookies,从而访问需要登录才能查看的网页内容。
有些网页需要你登录之后才可以访问,你需要提供账户和密码,
其实用Python写程序来访问还是蛮简单的,就是对Cookie的保存而已
比如我在 www.bokee.com博客网上注册了帐号test51,密码11111
如果想访问登录后才可以访问的网页,那么程序似乎可以这样写:
 
import urllib2,cookielib
import urllib
cookie=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
str=urllib.urlencode({'username':'test51','password':'11111'})
login_response=urllib2.urlopen('http://reg.bokee.com/account/LoginCtrl.b',str)
这样做之后cookie就保存下来了,
之后再去访问一些登录后才可以访问的页面只要直接调用urllib2.urlopen就可以了。
 
 
 
 
 

转载于:https://www.cnblogs.com/nishilunhui/archive/2013/02/16/2913602.html

### 使用 Python 实现基于 Cookie 的网站登录与数据抓取 为了实现这一目标,可以采用 `requests` 库来处理 HTTP 请求,并结合 `cookielib` 或者更现代的方式使用 `http.cookiejar` 来管理 Cookies。下面是一个完整的流程说明以及相应的代码示例。 #### 创建并存储Cookies 创建一个 `CookieJar` 对象用于保存从服务器接收到的 cookies: ```python import http.cookiejar as cookielib cookie_jar = cookielib.CookieJar() ``` #### 构建带有Cookie处理器的Opener 接着构建 opener 并安装它以便后续请求能够携带已保存下来的 cookies: ```python from urllib import request, parse opener = request.build_opener(request.HTTPCookieProcessor(cookie_jar)) request.install_opener(opener) ``` #### 发送带Cookie的POST请求完成登录动作 当向需要身份验证的服务端发送 POST 请求时,可以通过设置 headers 中的 'Content-Type' 字段告知服务端即将提交的数据格式;同时,在 body 部分附上用户名密码等必要参数以供认证过程使用[^1]。 ```python login_url = "https://example.com/login" data = { 'username': 'your_username', 'password': 'your_password' } headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', 'Content-Type': 'application/x-www-form-urlencoded'} encoded_data = parse.urlencode(data).encode('utf-8') req = request.Request(login_url, data=encoded_data, headers=headers) response = opener.open(req) print(response.read().decode()) ``` #### 抓取受保护的内容 一旦成功登录之后就可以像平常一样发起 GET 请求去获取那些只有注册用户可见的信息了。由于之前已经设置了全局默认 Opener ,所以这里不需要再额外指定 opener 参数。 ```python protected_page_url = "https://example.com/protected-page" resp = request.urlopen(protected_page_url) content = resp.read().decode() print(content) ``` 对于某些特定场景可能还需要考虑加入延时逻辑防止被反爬虫机制检测到频繁操作而封禁 IP 地址等问题[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值