python 实现登录网页的操作方法


Posted in Python onMay 11, 2018

有些网页需要你登录之后才可以访问,你需要提供账户和密码。

只要在发送http请求时,带上含有正常登陆的cookie就可以了。

1、首先我们要先了解cookie的工作原理。

Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

2、之后我们要获取到用户正常登录的cookie.

python提供了cookieJar的库,只要把cookieJar的实例作为参数传到urllib2的一个opener里面。

然后访问一次登录的页面,cookie就已经保存下来了。之后通过这个实例访问所有的页面都带有正常登陆的cookie了。

以人人网为例子。

#encoding=utf-8 
import urllib2 
import urllib 
import cookielib 
def renrenBrower(url,user,password): 
  #登陆页面,可以通过抓包工具分析获得,如fiddler,wireshark 
  login_page = "http://www.renren.com/PLogin.do" 
  try: 
    #获得一个cookieJar实例 
    cj = cookielib.CookieJar() 
    #cookieJar作为参数,获得一个opener的实例 
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
    #伪装成一个正常的浏览器,避免有些web服务器拒绝访问。 
    opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] 
    #生成Post数据,含有登陆用户名密码。 
    data = urllib.urlencode({"email":user,"password":password}) 
    #以post的方法访问登陆页面,访问之后cookieJar会自定保存cookie 
    opener.open(login_page,data) 
    #以带cookie的方式访问页面 
    op=opener.open(url) 
    #读取页面源码 
    data= op.read() 
    return data 
  except Exception,e: 
    print str(e) 
#访问某用户的个人主页,其实这已经实现了人人网的签到功能。 
print renrenBrower("http://www.renren.com/home","用户名","密码")

以上这篇python 实现登录网页的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
理解python正则表达式
Jan 15 Python
Python多线程实现同步的四种方式
May 02 Python
python中的break、continue、exit()、pass全面解析
Aug 05 Python
K-近邻算法的python实现代码分享
Dec 09 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
python实现的发邮件功能示例
Sep 11 Python
Python中的sys.stdout.write实现打印刷新功能
Feb 21 Python
Python 如何对文件目录操作
Jul 10 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
用python获取txt文件中关键字的数量
Dec 24 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 Python
Python利用splinter实现浏览器自动化操作方法
May 11 #Python
Python爬虫信息输入及页面的切换方法
May 11 #Python
对python-3-print重定向输出的几种方法总结
May 11 #Python
利用Python如何实现数据驱动的接口自动化测试
May 11 #Python
Python数据结构之图的应用示例
May 11 #Python
python 重定向获取真实url的方法
May 11 #Python
基于python 爬虫爬到含空格的url的处理方法
May 11 #Python
You might like
PHP 多进程 解决难题
2009/06/22 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
Exjs 入门篇
2010/04/07 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
最简单的js图片切换效果实现代码
2011/09/24 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
JS判定是否原生方法
2013/07/22 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
2016/03/31 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
深入理解Angularjs 脏值检测
2018/10/12 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
简单谈谈Python中的json与pickle
2017/07/19 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python实现堆排序的实例讲解
2020/02/21 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
建筑实习自我鉴定
2013/10/18 职场文书
机修工工作职责
2014/02/21 职场文书
2015年教师节广播稿
2015/08/19 职场文书
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang