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单例模式与metaclass
Jan 15 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
Python绘制3D图形
May 03 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
python中实现词云图的示例
Dec 19 Python
解决numpy数组互换两行及赋值的问题
Apr 17 Python
pandas中pd.groupby()的用法详解
Jun 16 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静态调用非静态方法的应用分析
2013/05/02 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
浅谈PHP封装CURL
2019/03/06 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
python-视频分帧&多帧合成视频实例
2019/12/10 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
毕业生的自我鉴定
2013/10/29 职场文书
大家检讨书5000字
2014/02/03 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
费城故事观后感
2015/06/10 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis