zoukankan      html  css  js  c++  java
  • 剪贴板自动翻译

    这是我常用的工具,调用有道翻译接口,每0.5秒检测剪贴板内容是否改变

    import re
    
    import requests
    import win32clipboard as w
    import win32con
    import time
    import pyperclip
    
    
    def getText():  # 读取剪切板
        # 打开剪贴板
        w.OpenClipboard()
        # 读取剪贴板的内容
        d = w.GetClipboardData(win32con.CF_TEXT)
        # 关闭剪贴板
        w.CloseClipboard()
        try:
            return d.decode('utf-8')
        except:
            return d.decode('gbk')
    
    
    def setText(aString):  # 写入剪切板
        w.OpenClipboard()
        w.EmptyClipboard()
        w.SetClipboardText(aString)
        w.CloseClipboard()
    
    
    def translate(content):
        if len(content) > 4891:
            ultra_text = "翻译的长度超过限制!!!"
            return ultra_text
        try:
            session = requests.Session()
            data = {'inputtext': content, 'type': 'AUTO'}
            headers = {'Content-Type': "application/x-www-form-urlencoded",
                       "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1", }
            url = "http://m.youdao.com/translate"
            req = session.post(url, data=data, headers=headers).text
            pattern = re.compile('translateResult">.*?<li>(.*?)</li>', re.S)
            ultra_text = re.findall(pattern, req)[0]
        except:
            ultra_text = "翻译失败!!!"
        return ultra_text
    
    
    def main():
        ls = ''
        while True:  # 如果剪贴板正在被占用
            cs = getText()
            time.sleep(0.5)
            if cs and cs != ls:
                print('准备翻译')
                content = getText()
                res = translate(content)
                setText(res)
                pyperclip.copy(res)
                time.sleep(1)
                ls = res
    
    
    if __name__ == "__main__":
        main()
  • 相关阅读:
    关于WinForm控件在asp.net中应用的问题。
    评“SuperMap Objects"
    news about matlab r2006a
    one good website for opensource
    a WebSite for MapXtreme2005 Crack
    Asp.net RegularExpressionValidator 控件验证输入值验证输入值是否匹配正则表达式指定的模式
    EditPlus配置手记
    关于asp.net中页面事件加载的先后顺序
    Jquery汇总
    JavaScript必看资源
  • 原文地址:https://www.cnblogs.com/1314h/p/14072873.html
Copyright © 2011-2022 走看看