使用python在Webbrowser中打开QRCode

时间:2017-02-07 12:58:21

标签: python qr-code python-webbrowser

我有一个工业条形码扫描仪。

我想扫描一个包含URI的QRCode,它应该直接在该机器的默认浏览器中自动打开该URI。

我有以下代码:

# -*- coding: utf-8 -*-

import pyHook
import pythoncom
import re
import webbrowser



endDomains = ".de|.com|.net|.org|.edu|.gov|.mil|.aero|.asia|.biz|.cat|.coop|.info|.int|.jobs|.mobi|.museum|.name|.post|.pro|.tel|.travel".split("|")
chars = ""
def pressed_chars(event):
    global chars
    if event.Ascii:
        char = chr(event.Ascii)    
        if event.Ascii == 3:
            quit()
        else:
            chars += char
            try:
                urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', chars)
                print(urls)
            except:
                urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', chars)
                print(urls)
            if len(urls) > 0:
                for url in urls:
                    for i in endDomains:
                        if i in url:


                            webbrowser.open_new_tab(url)

                            chars = ""
                            break



proc = pyHook.HookManager()
proc.KeyDown = pressed_chars
proc.HookKeyboard()
pythoncom.PumpMessages()

但它并没有打开我的浏览器。 任何人都可以帮助我吗?

操作系统是安装了Python 2.7 + Pyhook的Windows 10。

Python output

1 个答案:

答案 0 :(得分:0)

以下python代码做了我想要的:

import pyHook
import pythoncom
import httplib
import getpass
import shutil
import sys
import re
import webbrowser

endDomains = "end|thisistheend|.com".split("|")

chars = ""

def OnKeyBoardEvent(event):
    global chars

    if event.Ascii:
        char = chr(event.Ascii)
        if event.Ascii == 3:
        quit()
    else:
        chars += char
        try:
            urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', chars)
            print(urls)
        except:
            urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', chars)
            print(urls)
        if len(urls) > 0:
            for url in urls:
                for i in endDomains:
                    if i in url:
                        webbrowser.open_new_tab(url)
                        chars = ""
                        break



hook_manager = pyHook.HookManager()
hook_manager.KeyDown = OnKeyBoardEvent
hook_manager.HookKeyboard()
pythoncom.PumpMessages()

当用户键入语法时,它会在Internet Explorer中打开一个网站: https://website.com

相关问题