空间登入 空间登录入口

空间登入 空间登录入口
由于PyQt5的资料太少,加上能力有限,耗时一天时间做了个客户端,存有Bug,以及只有登录和获取cookies的功能,现在做个学习记录吧,后期有时间再来完善。第三方库安装好后,复制粘贴即可运行。import sysimport requestsfrom PyQt5.Qt import *from Py...
空间登入 空间登录入口

由于PyQt5的资料太少,加上能力有限,耗时一天时间做了个客户端,存有Bug,以及只有登录和获取cookies的功能,现在做个学习记录吧,后期有时间再来完善。


第三方库安装好后,复制粘贴即可运行。

import sys

import requests

from PyQt5.Qt import *

from PyQt5.QtWebEngineWidgets import QWebEngineView,QWebEngineProfile

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

class MainWindows(QWidget):

def __init__(self,*args,**kwargs):

super().__init__(*args,**kwargs)

self.setWindowTitle("测试")

self.setWindowIcon(QIcon("n6.ico"))

self.resize(800,800)#主窗口大小

self.setFixedSize(800, 800) #主窗口大小不能随意放缩

self.setup_ui()

def setup_ui(self):

self.Brows()

self.Cookie_btn()

self.textLine()

self.loadJS()

self.showTX()

def showTX(self):

self.lab= QLabel(self)

self.lab.setText("")

self.lab.resize(100, 100)

self.lab.move(50, 50)

# self.lab.setPixmap(QPixmap('./Info.png'))

def textLine(self):

self.pte = QPlainTextEdit(self)

# self.pte.setPlainText("111")

self.pte.resize(300, 300)

self.pte.move(300, 250)

def loadJS(self):

self.ld=QPushButton(self)

self.ld.setText("点击获取基本信息")

self.ld.move(150,0)

# self.btn_get.clicked.connect(self.run_js)

self.ld.clicked.connect(self.downUserInfo)

def Cookie_btn(self):

self.btn_get = QPushButton(self) # 创建一个按钮点击获取cookie

self.btn_get.setText("获取cookie")

self.btn_get.move(50,0)

self.btn_get.clicked.connect(self.get_cookies) # 绑定按钮点击事件

def Brows(self):

self.web = MyWebEngineView(self) # 创建浏览器组件对象,并且主窗口为父控件

self.web.resize(260, 360) # 设置浏览器大小

self.web.move(20,30)

url = 'https://qzone.qq.com/'

self.web.load(QUrl(url))

self.web.show() # 最后让页面显示出来

#####web页面加载完毕,调用函数

self.web.page().loadFinished.connect(self.run_js)

#运行js脚本,有回调

def run_js(self):

js_string = '''

function myFunction()

{


var img_url= document.getElementById('QM_OwnerInfo_Icon').src;

return img_url;

}

myFunction();

'''

self.web.page().runJavaScript(js_string, self.js_callback)

# 回调函数

def js_callback(self, result):

# print(result)

self.rs_succ=result

print(self.rs_succ)

# QMessageBox.information(self, "提示", str(result))

def downUserInfo(self):

url=self.rs_succ

headers = {

'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'

}

if url == 'None':

print("为None")

else:

print("这是下载函数,url是---", url)

response = requests.get(url,headers=headers)

with open("Info.png", "wb") as fp:

fp.write(response.content)

fp.close()

print("个人头像已保存!")

self.web.deleteLater()#销毁子控件

self.lab.setPixmap(QPixmap('./Info.png'))

def get_cookies(self):

cookie = self.web.get_cookie() #获取浏览器得到的cookies

print('获取到cookie: ', cookie)

self.pte.setPlainText(str(cookie))

# self.web.deleteLater()#删除浏览器子控件

# 创建自己的浏览器控件,继承自QWebEngineView

class MyWebEngineView(QWebEngineView):

def __init__(self, *args, **kwargs):

super(MyWebEngineView, self).__init__(*args, **kwargs)

# 绑定cookie被添加的信号槽

QWebEngineProfile.defaultProfile().cookieStore().cookieAdded.connect(self.onCookieAdd)

self.cookies = {} # 存放cookie字典

def onCookieAdd(self, cookie): # 处理cookie添加的事件

name = cookie.name().data().decode('utf-8') # 先获取cookie的名字,再把编码处理一下

value = cookie.value().data().decode('utf-8') # 先获取cookie值,再把编码处理一下

self.cookies[name] = value # 将cookie保存到字典里

# 获取cookie

def get_cookie(self):

cookie_str = self.cookies # 字典的形式返回

return cookie_str

if __name__ == '__main__':

app = QApplication(sys.argv)

win_root=MainWindows()

win_root.show()

sys.exit(app.exec_())

最后,小编想说:我是一名python开发工程师,

整理了一套最新的python系统学习教程,

想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助

正在学习python的小伙伴或者打算学习的,可以私信小编“01”领取资料!


本文来自经验投稿,不代表美啦学习笔记立场,如若转载,请注明出处:https://www.meila8.com/2/471.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 11-27
下一篇 11-27

相关推荐

  • 空间登入 空间登录入口

    空间登入 空间登录入口
    由于PyQt5的资料太少,加上能力有限,耗时一天时间做了个客户端,存有Bug,以及只有登录和获取cookies的功能,现在做个学习记录吧,后期有时间再来完善。第三方库安装好后,复制粘贴即可运行。import sysimport requestsfrom PyQt5.Qt import *from Py

    2022-11-27 03:32:02
    1682 0

评论列表

联系我们

123456

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信