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读文件逐行处理的示例代码分享
Dec 27 Python
Python实现删除Android工程中的冗余字符串
Jan 19 Python
使用Python脚本操作MongoDB的教程
Apr 16 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
Flask框架中request、请求钩子、上下文用法分析
Jul 23 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
python 动态调用函数实例解析
Oct 21 Python
PyCharm 2020.2 安装详细教程
Sep 25 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
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
Javascript中Eval函数的使用
2010/03/23 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
微信小程序 数组中的push与concat的区别
2017/01/05 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
用C++封装MySQL的API的教程
2015/05/06 Python
详解Python中的各种函数的使用
2015/05/24 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
Python学习之time模块的基本使用
2021/01/17 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
有多年工作经验的自我评价
2014/03/02 职场文书
股东协议书范本
2014/04/14 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
庆六一开幕词
2015/01/29 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
Django路由层如何获取正确的url
2021/07/15 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL