Python 模拟登陆的两种实现方法


Posted in Python onAugust 10, 2017

Python 模拟登陆的两种实现方法

有时候我们的抓取项目时需要登陆到某个网站上,才能看见某些内容的,所以模拟登陆功能就必不可少了,散仙这次写的文章,主要有2个例子,一个是普通写法写的,另外一个是基于面向对象写的。

模拟登陆的重点,在于找到表单真实的提交地址,然后携带cookie,post数据即可,只要登陆成功,我们就可以访问其他任意网页,从而获取网页内容。

方式一:

import urllib.request 
import urllib.parse 
import http.cookiejar 
#post的内容 
values={ 
'logon.x':'linke', 
'password':'xxxx', 
'username':'xxxxx' 
} 
 
#登陆的地址 
logUrl="http://192.168.32.112:8080/templates/index/hrlogon.do" 
 
#构建cook 
cook=http.cookiejar.CookieJar() 
 
#构建openner 
openner=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cook)) 
 
#添加headers 
openner.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')] 
 
r=openner.open(logUrl,urllib.parse.urlencode(values).encode()) 
 
#print(r.read().decode('gbk')) 
 
r=openner.open("http://192.168.132.62:8080/kq/kqself/card/carddata.do?b_query=link") 
 
print(r.read().decode('gbk'))

方式二:

import urllib 
import urllib.request 
import urllib.parse 
import http.cookiejar 
import re 
 
 
class loginRLKQ: 
  post_data=b""; 
  def __init__(self): 
    #初始化类,cook的值 
    cj=http.cookiejar.CookieJar() 
    opener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) 
    opener.addheaders=[('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')] 
    #初始化全局opener 
    urllib.request.install_opener(opener) 
 
  #login方法需要加入post数据 
  def login(self,loginurl,encode): 
    #模拟登陆 
    req=urllib.request.Request(loginurl,self.post_data) 
    rep=urllib.request.urlopen(req) 
    d=rep.read() 
    #print(d) 
    d=d.decode(encode) 
    return d 
  #登陆之后获取其他网页方法 
  def getUrlContent(self,url,encode): 
    req2=urllib.request.Request(url) 
    rep2=urllib.request.urlopen(req2) 
    d2=rep2.read() 
    d22=d2.decode(encode) 
    return d22 
if __name__=="__main__": 
    #实例化类 
    x=loginRLKQ() 
    #给post数据赋值 
    x.post_data=urllib.parse.urlencode({'username':"xxdd",'password':'xxdd','logon.x':'linke'}).encode(encoding="gbk") 
    #登陆 
    y=x.login("http://192.168.132.61:8080/templates/index/hrlogon.do","gbk") 
    #获取网页信息 
    print(x.getUrlContent("http://192.124.32.16:8080/kq/kqself/card/carddata.do?b_query=link","gbk"))

以上就是Python 模拟登陆的实现方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
详解Golang 与python中的字符串反转
Jul 21 Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
wxPython实现列表增删改查功能
Nov 19 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
Python读取YAML文件过程详解
Dec 30 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
Python学习笔记之装饰器
Aug 06 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
python使用BeautifulSoup 解析HTML
Apr 24 Python
Python 网页解析HTMLParse的实例详解
Aug 10 #Python
关于Python中浮点数精度处理的技巧总结
Aug 10 #Python
Python 处理数据的实例详解
Aug 10 #Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 #Python
关于Python中空格字符串处理的技巧总结
Aug 10 #Python
Python排序算法实例代码
Aug 10 #Python
简单谈谈python中的语句和语法
Aug 10 #Python
You might like
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
Python自定义类的数组排序实现代码
2016/08/28 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
详解python的super()的作用和原理
2020/10/29 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
大学生毕业的自我评价分享
2014/01/02 职场文书
洗车工岗位职责
2014/03/15 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
给老婆的检讨书
2015/01/27 职场文书
垂直极限观后感
2015/06/08 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书