使用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制作刷网页流量工具
Apr 23 Python
详解Python_shutil模块
Mar 15 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
python字符串和常用数据结构知识总结
May 21 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
pycharm设置python文件模板信息过程图解
Mar 10 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
python 爬虫如何实现百度翻译
Nov 16 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 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 防恶意刷新实现代码
2010/05/16 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
AngularJS基础知识
2014/12/21 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
微信小程序image图片加载完成监听
2019/08/31 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
用Python进行基础的函数式编程的教程
2015/03/31 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
python如何生成网页验证码
2018/07/28 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
实习单位评语
2014/04/26 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
世界环境日活动总结
2015/02/11 职场文书
Python turtle编写简单的球类小游戏
2022/03/31 Python
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS