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爬虫之抓取百度贴吧代码分享
Nov 06 Python
python实现RSA加密(解密)算法
Feb 17 Python
python程序封装为win32服务的方法
Mar 07 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
python reverse反转部分数组的实例
Dec 13 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
Python List列表对象内置方法实例详解
Oct 22 Python
Python更新所有已安装包的操作
Feb 13 Python
python程序文件扩展名知识点详解
Feb 27 Python
用python读取xlsx文件
Dec 17 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 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
一个ftp类(ini.php)
2006/10/09 PHP
PHP用mysql数据库存储session的代码
2010/03/05 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
Angularjs 基础入门
2014/12/26 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
Python yield与实现方法代码分析
2018/02/06 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python3并发写文件与Python对比
2019/11/20 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
委托书如何写
2014/08/30 职场文书
股权转让协议书
2014/12/07 职场文书
公司新员工欢迎词
2015/09/30 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js