在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)
2021/6/12 20:25:50
本文主要是介绍在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
拼多多现在也是越来越火了,但是不知道大家有没有发现,拼多多似乎一直不能通过网页进行访问。淘宝,京东都有微信客户端,那么怎么拼多多就没有呢?带着这个疑问,我特地去手机爬取了一下拼多多的客户端。(其实也不能说是爬取吧,就是随便玩玩!)
文章目录
- 拼多多的域名...
- 程序构思
- 基础窗口
- 实现浏览器
- 增强用户体验
- 实例代码
- 转载声明
拼多多的域名…
事情是这样的,当时呢,我看中了一款洗手液…
于是我点击了一下复制链接,就像这样
https://mobile.yangkeduo.com/goods.html?goods_id=251325707271&page_from=36&_oc_source=66&pxq_secret_key=DRSSQMYYXEKMEMA2NIMG3VFPBE4TFV3V4QT4IDZ7R7QML57MNXMQ&share_uin=OKCYL2UFPVNZK67UCUDUFQNRCQ_GEXDA&refer_share_id=694d23239e514c43b93dbfbfd2c675ef&refer_share_uid=8601252201574&refer_share_uin=OKCYL2UFPVNZK67UCUDUFQNRCQ_GEXDA&refer_share_channel=qq&refer_share_form=card&_wvx=10
没错,就是一个这样的链接,于是我真的感觉很奇怪,不是网站版的拼多多域名是pingduoduo.com
吗?
结果,当我将这个链接复制到浏览器中运行,发现的确是真的!
不会吧,难道我使用的拼多多一直都是盗版的?
于是我来了一波域名查询,发现竟是
阿里云注册的,应该不会是什么小网站,但是所有者我们还是不知道啊,所以我去到了爱企查进行进一步的查询
在上海寻梦科技下方,终于发现了这一行域名
好吧,在浏览的时候,我还发现了另一个拼多多域名,http://yiqixiegushi.com/
,于是我就想着,要不我做一个程序,这样在网上就可以抢拼多多商品了
程序构思
基础窗口
于是我就开始了,这显然是一个网页页面,我们有很多种选择,在这里,我们选择了PyQt库进行操作,于是便开始了编代码…
首先呢,我们先来创建一个购物中心的类,然后我们将创建一个无边框的窗口,并显示在主页面上。
# 程序名称 : ShoppingCentre # 制作时间 : 2021年6月12日 # 运行环境 : Windows 10 from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtWebEngineWidgets import * # 创建主程序 class ShoppingCentre(QMainWindow): def __init__(self): super().__init__() self.grabKeyboard() self.setWindowTitle("拼多多商城") self.setWindowFlags(Qt.WindowStaysOnTopHint|Qt.WindowMinimizeButtonHint|Qt.FramelessWindowHint) self.show() if __name__ == "__main__": import sys # 准备打开网站 app = QApplication(sys.argv) win = ShoppingCentre() app.exec_()
接下来我们将设置这个窗口的大小,并固定大小,所以我们来搜索一下手机的长宽比例一般是多少,并参照一下模拟器的长宽值
所以说宽度一般是600,高度一般是1100左右,并设置出现位置在屏幕中央,也就是电脑屏幕的宽度减去我们窗口宽度,然后除二的值,在我这里呢,是(1980-600)/2 也就是690
经过我的测试,发现屏幕在600和1050这个比值中是最合适的,然后锁定我们的长和宽,接下来,我们去官网爬取图片,设置图标
拼接地址,得到最终图标,并保存https://www.pinduoduo.com/homeFavicon.ico
我们可以看到,我们成功设置了图标(注意,最终图片的命名是以从网站下载下来命名后的文件)
# 程序名称 : ShoppingCentre # 制作时间 : 2021年6月12日 # 运行环境 : Windows 10 from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtWebEngineWidgets import * # 创建主程序 class ShoppingCentre(QMainWindow): def __init__(self): super().__init__() self.grabKeyboard() self.setWindowTitle("拼多多商城") self.setGeometry(690,10,600,1050) self.setFixedSize(600,1050) self.setWindowIcon(QIcon('images/pdd.ico')) self.setWindowFlags(Qt.WindowStaysOnTopHint|Qt.WindowMinimizeButtonHint|Qt.FramelessWindowHint) self.show() if __name__ == "__main__": import sys # 准备打开网站 app = QApplication(sys.argv) win = ShoppingCentre() app.exec_()
实现浏览器
首先我们先重写一下方法,实现网页跳转
然后将这个浏览器添加进设置中
运行程序,我们可以发现,页面已经可以正常显示了
可是我们会发现,我们没有按钮,我们只能右键点击操作后退或者前进,这实在是太麻烦了
那么我们设置一个状态栏进行操作程序,这里我们就需要自行找图标,我这里使用的呢,是阿里巴巴图标库提供的图标
我们在代码中添加工具栏,然后设置图标大小
添加图片,并将其添加到状态栏上面
最后绑定事件,我们就成功制作了这个程序了
再次使用我们会发现整个用户体验加强了
# 程序名称 : ShoppingCentre # 制作时间 : 2021年6月12日 # 运行环境 : Windows 10 from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtWebEngineWidgets import * # 重写方法 class WebEngineView(QWebEngineView): def createWindow(self,QWebEnginePage_WebWindowType): page = WebEngineView(self) page.urlChanged.connect(self.on_url_changed) def on_url_changed(self,url): self.setUrl(url) # 创建主程序 class ShoppingCentre(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("拼多多商城") self.setGeometry(690,10,600,1050) self.setFixedSize(600,1050) self.setWindowIcon(QIcon('images/pdd.ico')) self.setWindowFlags(Qt.WindowStaysOnTopHint|Qt.WindowMinimizeButtonHint|Qt.FramelessWindowHint) # 添加导航栏到窗口中 self.navigation_bar = self.addToolBar('工具栏') self.navigation_bar.setIconSize(QSize(18,18)) # 添加前进、后退、停止加载和刷新的按钮 self.back_button = QAction(QIcon('images/back.png'), 'Back(点击可往前)', self) self.next_button = QAction(QIcon('images/next.png'), 'Forward(下一页)', self) self.reload_button = QAction(QIcon('images/reload.png'), 'Reload(刷新)', self) # 将按钮添加到导航栏上 self.navigation_bar.addAction(self.back_button) self.navigation_bar.addAction(self.next_button) self.navigation_bar.addAction(self.reload_button) # 设置浏览器 webbrowser = WebEngineView() webbrowser.load(QUrl("https://mobile.yangkeduo.com")) self.setCentralWidget(webbrowser) # 设置链接 self.reload_button.triggered.connect(webbrowser.reload) self.back_button.triggered.connect(webbrowser.back) self.next_button.triggered.connect(webbrowser.forward) self.show() if __name__ == "__main__": import sys # 准备打开网站 app = QApplication(sys.argv) win = ShoppingCentre() app.exec_()
增强用户体验
这个窗口总是在最前方,对于我们的程序来说并不是一件好事情,所以我们重新编辑一下程序,我们将这个设置窗口属性的代码注释掉,并且重新更改一下窗口大小
我们再设置一下窗口的快捷键
这样子,就感觉比之前更完美了一下,于是就收工吧
实例代码
# 程序名称 : ShoppingCentre # 制作时间 : 2021年6月12日 # 运行环境 : Windows 10 from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtWebEngineWidgets import * # 重写方法 class WebEngineView(QWebEngineView): def createWindow(self,QWebEnginePage_WebWindowType): page = WebEngineView(self) page.urlChanged.connect(self.on_url_changed) def on_url_changed(self,url): self.setUrl(url) # 创建主程序 class ShoppingCentre(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("拼多多商城") self.setGeometry(690,35,600,1040) self.setFixedSize(600,1040) self.setWindowIcon(QIcon('images/pdd.ico')) #self.setWindowFlags(Qt.FramelessWindowHint) # 添加导航栏到窗口中 self.navigation_bar = self.addToolBar('菜单栏') self.navigation_bar.setMovable(True) self.navigation_bar.setIconSize(QSize(16,16)) # 添加前进、后退、停止加载和刷新的按钮 self.back_button = QAction(QIcon('images/back.png'), 'Back(点击可往前)', self) self.next_button = QAction(QIcon('images/next.png'), 'Forward(下一页)', self) self.reload_button = QAction(QIcon('images/reload.png'), 'Reload(刷新)', self) # 设置快捷键 self.back_button.setShortcut('Ctrl+Shift+F') self.next_button.setShortcut('Ctrl+Shift+Z') self.reload_button.setShortcut('Ctrl+R') # 将按钮添加到导航栏上 self.navigation_bar.addAction(self.back_button) self.navigation_bar.addAction(self.next_button) self.navigation_bar.addAction(self.reload_button) # 设置浏览器 webbrowser = WebEngineView() self.setCentralWidget(webbrowser) webbrowser.load(QUrl("https://mobile.yangkeduo.com")) # 设置链接 self.reload_button.triggered.connect(webbrowser.reload) self.back_button.triggered.connect(webbrowser.back) self.next_button.triggered.connect(webbrowser.forward) self.show() if __name__ == "__main__": import sys # 准备打开网站 app = QApplication(sys.argv) win = ShoppingCentre() app.exec_()
其实在这里我还是要说明为什么要在最后加上快捷键这个东西,是因为我发现,浏览器直接挡住了工具栏,让它不能继续访问,但是解决办法还是没有找到,不知道哪位大神可以帮忙解惑,感谢!
转载声明
本文首发至CSDN,如需转载,请附上原文链接:在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多))
这篇关于在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程