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实现从订阅源下载图片的方法
Mar 11 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
详解python eval函数的妙用
Nov 16 Python
Python2中文处理纪要的实现方法
Mar 10 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
python 判断linux进程,并杀死进程的实现方法
Jul 01 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
在keras里面实现计算f1-score的代码
Jun 15 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
解决hive中导入text文件遇到的坑
Apr 07 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 和 MySQL 时区的一点总结
2008/03/26 PHP
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
Python基于select实现的socket服务器
2016/04/13 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
Python实现最常见加密方式详解
2019/07/13 Python
python实现键盘输入的实操方法
2019/07/16 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
社区志愿者活动方案
2014/08/18 职场文书
python通过新建环境安装tfx的问题
2022/05/20 Python