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在windows命令行下输出彩色文字的方法
Mar 19 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
python如何获取当前文件夹下所有文件名详解
Jan 25 Python
Python元组知识点总结
Feb 18 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
python之pyqt5通过按钮改变Label的背景颜色方法
Jun 13 Python
Python 下载及安装详细步骤
Nov 04 Python
Python 文件数据读写的具体实现
Jan 24 Python
信号生成及DFT的python实现方式
Feb 25 Python
Python logging自定义字段输出及打印颜色
Nov 30 Python
总结Pyinstaller打包的高级用法
Jun 28 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 skymvc 一款轻量、简单的php
2011/06/28 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
基于vue展开收起动画的示例代码
2018/07/05 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
Python队列的定义与使用方法示例
2017/06/24 Python
Python3实现购物车功能
2018/04/18 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
个人委托书范本
2014/09/13 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
公务员检讨书
2014/11/01 职场文书
工程资料员岗位职责
2015/04/13 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
nginx+lua单机上万并发的实现
2021/05/31 Servers
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL