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保存MongoDB上的文件到本地的方法
Mar 16 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
python实现将读入的多维list转为一维list的方法
Jun 28 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
python多线程扫描端口(线程池)
Sep 04 Python
iPython pylab模式启动方式
Apr 24 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
python3实现简单飞机大战
Nov 29 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
Python用requests库爬取返回为空的解决办法
Feb 21 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在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
解析yii数据库的增删查改
2013/06/20 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
基于jQuery的自动完成插件
2011/02/03 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
python3编码问题汇总
2016/09/06 Python
Python学习入门之区块链详解
2017/07/25 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
岗位工作说明书
2014/07/29 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android