使用Python中的cookielib模拟登录网站


Posted in Python onApril 09, 2015

前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序。简单说一下流程:先用cookielib获取cookie,再用获取到的cookie,进入需要登录的网站。

# -*- coding: utf-8 -*-

 # !/usr/bin/python
 
 import urllib2
 import urllib
 import cookielib
 import re 
 auth_url = 'http://www.nowamagic.net/'
 home_url = 'http://www.nowamagic.net/';
 # 登陆用户名和密码
 data={
   "username":"nowamagic",
   "password":"pass"
 }
 # urllib进行编码
 post_data=urllib.urlencode(data)
 # 发送头信息

 headers ={

   "Host":"www.nowamagic.net",
 "Referer": "http://www.nowamagic.net"
 }
 # 初始化一个CookieJar来处理Cookie

 cookieJar=cookielib.CookieJar()
 # 实例化一个全局opener

 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))

 # 获取cookie
 req=urllib2.Request(auth_url,post_data,headers)
 result = opener.open(req)
 # 访问主页 自动带着cookie信息
 result = opener.open(home_url)
 # 显示结果
 print result.read()

再附带几个示例程序:

1. 使用已有的cookie访问网站

import cookielib, urllib2
 
 ckjar = cookielib.MozillaCookieJar(os.path.join('C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default', 'cookies.txt')) 
 req = urllib2.Request(url, postdata, header)
 
 req.add_header('User-Agent', \
   'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
 
 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )
 
 f = opener.open(req)
 htm = f.read()
 f.close()

2. 访问网站获得cookie,并把获得的cookie保存在cookie文件中

import cookielib, urllib2
 
 req = urllib2.Request(url, postdata, header)
 req.add_header('User-Agent', \
   'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
 
 ckjar = cookielib.MozillaCookieJar(filename)
 ckproc = urllib2.HTTPCookieProcessor(ckjar)
 
 opener = urllib2.build_opener(ckproc)
 
 f = opener.open(req)
 htm = f.read()
 f.close()
 
 ckjar.save(ignore_discard=True, ignore_expires=True)

3. 使用指定的参数生成cookie,并用这个cookie访问网站

import cookielib, urllib2
 
 cookiejar = cookielib.CookieJar()
 urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
 values = {'redirect':", 'email':'abc@abc.com',
      'password':'password', 'rememberme':", 'submit':'OK, Let Me In!'}
 data = urllib.urlencode(values)
 
 request = urllib2.Request(url, data)
 url = urlOpener.open(request)
 print url.info()
 page = url.read()
 
 request = urllib2.Request(url)
 url = urlOpener.open(request)
 page = url.read()
 print page
Python 相关文章推荐
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
Python去除字符串两端空格的方法
May 21 Python
python爬虫使用cookie登录详解
Dec 27 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
浅谈python3打包与拆包在函数的应用详解
May 02 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 Python
python 字典和列表嵌套用法详解
Jun 29 Python
列举Python中吸引人的一些特性
Apr 09 #Python
Python的Bottle框架的一些使用技巧介绍
Apr 08 #Python
在Python的框架中为MySQL实现restful接口的教程
Apr 08 #Python
简单介绍Python的轻便web框架Bottle
Apr 08 #Python
常见的在Python中实现单例模式的三种方法
Apr 08 #Python
分析Python的Django框架的运行方式及处理流程
Apr 08 #Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 #Python
You might like
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
土木工程师岗位职责
2013/11/24 职场文书
护士的岗位职责
2013/12/04 职场文书
邮政员工辞职信
2014/01/16 职场文书
简历的自我评价范文
2014/02/04 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
合同纠纷调解书
2015/05/20 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS