• 每次打开百度太麻烦?用程序直接打开网页 Python实现百度划词搜索功能(获取剪切板数据)


    实现划词功能

    说是划词翻译,实际上我们是通过获取用户的剪切板内容,通过一系列的操作得到的。首先呢,我们就先实现如何获取剪切板内容的程序
    在这里插入图片描述
    首先先在桌面创建一个文件夹,命名为“MoveSearch”文件夹
    在这里插入图片描述
    之后我们双击点入这个文件夹,创建一个“MainWindow.py”的程序和“Clipborad.py”这两个程序
    在这里插入图片描述
    我们这里使用Sublime进行操作演示,我们点开“ClipBoard.py”的文件,然后我们按照下面的图片添加文件夹到工作路径
    在这里插入图片描述
    在这里插入图片描述
    当出现上面这样的界面时候,我们已经成功将这个文件夹加入了我们的开发路径


    接下来,我们在PyPi上面检索我们想要的模块,通过查找,我们发现这里有一个模块符合我们的要求,所以我们可以将它下载下来
    在这里插入图片描述
    输入命令pip install pyperclip,这样子我们应该就可以安装了。我们在CMD中尝试安装的代码
    在这里插入图片描述
    在这里呢,我已经成功安装了代码的了,接下来我们尝试一下库的功能,我们先建立一个循环,一直返回我们从剪切板获取的数据

    import pyperclip as pc 
    import time
    
    while True:
    	 copy_text = pc.paste()
    	 print(copy_text)
    
    	 time.sleep(1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    我们首先导入模块,然后创建一个循环,继续创建键盘输入,最后打印键盘输入的值,为了让程序运行的时间不消耗系统的大量内存,于是我们加上Time模块让程序进行一定时间的休眠,实现合理分配


    在这里插入图片描述
    我们通过上面的程序就可以看到,我们的程序将我们的值返回了回来。


    其实我们可以发现,我们的复制程序非常简单,所以我们我们返回主程序编写代码。
    在这里插入图片描述
    我们现在要编写一个打开外部网页的办法。这个时候呢有很多种选择,那么这里我选择大概是大家比较常用的库——PyQt5来操作。其实最近呢QT也开发了一个新的Python接口,有兴趣的小伙伴们可以修改代码做一些尝试


    我们先导入程序运行所需要的模块
    在这里插入图片描述
    我们接下来编写一个类,进行我们的窗口处理
    在这里插入图片描述
    首先我们先设置窗口的标题,接下来设置窗口出现的位置和它的大小,接下来使用浏览器文件创建它。在这里我们并没有写出访问的链接,因为我们还不知道百度的搜索规则
    在这里插入图片描述
    使用百度进行搜索后,观察地址栏的变化,可以看到,wd便是接受参数的值
    在这里插入图片描述
    编写代码,将代码URL改成这样'https://www.baidu.com/s?ie=UTF-8&wd='+str(word)


    整个代码也就变成了这样,接下来我们在循环中调用窗口
    在这里插入图片描述

    传参进入窗口的类当中,我们先运行测试一下

    在这里插入图片描述
    若我们的剪切板中有值,我们可以发现我们的程序可以打开网页

    import pyperclip as pc 
    import time
    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    from PyQt5.QtWebEngineWidgets import *
    
    class MainWindow(QMainWindow):
    	def __init__(self,word):
    		super(QMainWindow,self).__init__()
    		self.setWindowTitle("百度划词搜索")
    		self.setGeometry(700,600,1200,1200)
    		self.browser = QWebEngineView()
    		self.browser.load(QUrl('https://www.baidu.com/s?ie=UTF-8&wd='+str(word)))
    		self.setCentralWidget(self.browser)
    
    
    # 首先我们先创建一个循环
    while True:
    	# 获取系统粘贴板的值
    	copy_text = pc.paste()
    
    	# 准备打开网站
    	app = QApplication(sys.argv)
    	win = MainWindow(copy_text)
    	win.show()
    	app.exec()
    
    	time.sleep(5)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    运行错误

    我们可以发现程序运行时会出现好多个错误

    1. 我们的类创建的不成功

      我们第二次进行复制的时候我们会发现。出现了这样的报错QWidget: Must construct a QApplication before a QWidget
      在这里插入图片描述
      2.我们程序运行后无法继续使用网页
      在这里插入图片描述

    解决问题

    这个程序呢我最近还是要重新思考一下思路,发现很多方式都不是特别正确,所以可以移步到我的另一篇博客。那么这片博客就这样简单结束了哈!

    转载声明

    本文于2021年6月5日首发自CSDN,如需转载,请附上原文链接:每次打开百度太麻烦?用程序直接打开网页!Python实现百度划词搜索功能(获取剪切板数据)

  • 相关阅读:
    ElasticSearch导入PDF,WORD到ES进行全文检索,全文高亮等操作。
    【无标题】小程序条件判断wx:if=“{{indexof.checkFunDic(item.settingId,‘2‘)}}“
    【路径规划-VRP问题】基于遗传算法求解出租车网约车接送客车辆路径规划问题附matlab代码
    【Java-LangChain:面向开发者的提示工程-8】聊天机器人
    JavaScript 中的 change
    红蓝对抗 网络安全 网络安全红蓝对抗演练
    01-Kafaka
    核函数简介
    uni-app 框架中使用 vuex(store)
    架构漫谈 - 如何设计高性能、高可用、高扩展架构
  • 原文地址:https://blog.csdn.net/qq_45030271/article/details/117374227