我有一个脚本,它使用beautifulsoup来抓取产品条形码的网站,并拼凑了一些代码,试图用Tkinter制作一个基本的GUI。首先是一个要求输入URL的输入框,然后我想将该组输出到Tkinter文本小部件。这是我不能做的最后一部分。当我尝试将文本放入另一个示例时,我在text.insert上收到名称错误。
from Tkinter import *
from ScrolledText import *
import tkFileDialog
import tkMessageBox
import urllib2
import bs4 as bs
import re
import urlparse
import sys
master = Tk()
e = Entry(master)
e.pack()
e.focus_set()
def callback():
url = e.get()
response = urllib2.urlopen(url)
content = response.read()
soup = bs.BeautifulSoup(content)
barcodes = set()
for tag in soup.find_all('img', {'src': re.compile(r'/pi/')}):
href = tag['src']
scheme, netloc, path, query, fragment = urlparse.urlsplit(href)
barcodes.add(path.split('\\')[1])
## print "\n".join(str(x) for x in sorted(barcodes)) This would output to the shell.
b = Button(master, text="go", width=10, command=callback)
b.pack()
如果有值,我想启动另一个文本窗口并打印条形码。
##if len(barcodes) != 0:
##
## import Tkinter
## import ScrolledText
## root = Tkinter.Tk(className=" Just another Text Editor")
## textPad = ScrolledText.ScrolledText(root, width=100, height=80)
## textPad.pack()
##
## root.mainloop()
mainloop()
我一直在查看Tkinter文档大约一天,但没有进展。非常感谢任何指针。暂时说条形码没有定义,所以我显然做了别的错事。