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

发布时间 - 2026-01-11 02:43:30    点击率:

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模拟用户登录验证  # Python模拟登陆实现代码  # python3.0 模拟用户登录  # 三次错误锁定的实例  # 如有  # 两种  # 希望能  # 另外一个  # 谢谢大家  # 表单  # 必不可少  # 面向对象  # 就可以  # 时需  # 疑问请  # 主要有  # 是基于  # CookieJar  # cook  # HTTPCookieProcessor  # build_opener  # openner  # hrlogon  # index 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么使用artisan命令缓存配置和视图  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  韩国服务器如何优化跨境访问实现高效连接?  WordPress 子目录安装中正确处理脚本路径的完整指南  HTML 中动态设置元素 name 属性的正确语法详解  如何将凡科建站内容保存为本地文件?  太平洋网站制作公司,网络用语太平洋是什么意思?  网页设计与网站制作内容,怎样注册网站?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  ,怎么在广州志愿者网站注册?  微信小程序 input输入框控件详解及实例(多种示例)  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何用PHP快速搭建高效网站?分步指南  香港网站服务器数量如何影响SEO优化效果?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel怎么实现模型属性的自动加密  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  黑客如何通过漏洞一步步攻陷网站服务器?  如何在不使用负向后查找的情况下匹配特定条件前的换行符  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Java解压缩zip - 解压缩多个文件或文件夹实例  如何在服务器上配置二级域名建站?  Laravel如何实现本地化和多语言支持?(i18n教程)  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  如何在阿里云购买域名并搭建网站?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  香港服务器如何优化才能显著提升网站加载速度?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  智能起名网站制作软件有哪些,制作logo的软件?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何用西部建站助手快速创建专业网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  JavaScript数据类型有哪些_如何准确判断一个变量的类型  如何用IIS7快速搭建并优化网站站点?  网站制作报价单模板图片,小松挖机官方网站报价?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Python面向对象测试方法_mock解析【教程】