python(基于pyside2)下利用QWebEngineView内嵌网页实现的的自动登陆小程序,

今天写了一个python(基于pyside2)的自动登陆小程序,利用QWebEngineView内嵌网页实现的。主要解决了下面一些技术问题:

1、QWebEngineView内嵌网页。

利用QWebEnginePage对象的runJavaScript就可实现。

        # 初始化一个page
        self.webview = QWebEngineView(self)
        self.page = QWebEnginePage()
        self.webview.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)  # 支持视频播放
        self.page.windowCloseRequested.connect(self.on_windowCloseRequested)  # 页面关闭请求
        self.page.profile().downloadRequested.connect(self.on_downloadRequested)  # 页面下载请求
        # ------------监听 加载内容url
        self.t = WebEngineUrlRequestInterceptor()
        self.page.setUrl(QUrl("https://www.baidu.com"))
        self.webview.setPage(self.page)
        self.page.profile().setUrlRequestInterceptor(self.t)
        self.webview.loadProgress.connect(self.processLoad)
        self.frmWebview.setStyleSheet("border-top:1px solid #ccc;"
                                      "border-bottom:1px solid #ccc;border-left:1px solid #ccc")
        self.webview.show()

2、如何和python桌面程序交互。

利用QWebEnginePage对象的runJavaScript就可实现。比如找到CSDN网站登陆按钮:

 self.page.runJavaScript("""
     var hrefArr = document.getElementsByTagName('a'); //获取这个页面的所有A标签 
     for( var i=0; i<hrefArr.length; i++ ){                
         html = hrefArr[i].innerHTML;
         if (html == '账号密码登录'){
             hrefArr[i].click();
             break;
         }
     }  
     ...
            

另外还碰到了如何循环等待登陆框的出现,如何模拟键盘设置input框的值,如何动态施加按钮的单击事件等问题。

最后的效果如下:

双击左边的项目,即可自动登陆CSDN,程序仅为演示,代码中要改成自己的CSDN账号。登陆后的效果:

操作演示视频:

CSDN自动登陆脚本

需要源码的粉丝可以联系我QQ: 395702361

 

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wave12_mp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值