qq空间登录器(利用PyQt5制作QQ空间登入客户端)
沙滩排球 2022-11-28 14:18www.1689878.com沙滩排球

由于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.clickednnect(selfn_js)

self.ld.clickednnect(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.clickednnect(self.get_cookies) # 绑定按钮点击事件

def Brows(self):

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

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

self.web.move(20,30)

url = 'qzone.qq/'

self.web.load(QUrl(url))

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

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

self.web.page().loadFinishednnect(selfn_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()nJavaScript(js_string, self.js_callback)

# 回调函数

def js_callback(self, result):

# print(result)

self.rs_su=result

print(self.rs_su)

# QMessageBoxrmation(self, "提示", str(result))

def downUserInfo(self):

url=self.rs_su

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(responsentent)

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()okieStore()okieAddednnect(self.onCookieAdd)

selfokies = {} # 存放cookie字典

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

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

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

selfokies = value # 将cookie保存到字典里

# 获取cookie

def get_cookie(self):

cookie_str = selfokies # 字典的形式返回

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”领取资料!


Copyright © 2016-2025 www.1689878.com 体育知识网 版权所有 Power by

足球|篮球|NBA|奥运|网球|高尔夫|田径|游泳|排球|赛车|比赛|亚运会