Python 爬图片的GUI程序(Tkinter与爬图片结合)

最近需要一些车辆的图片,找了一些和车辆有关的网站,找来找去还是这个网站还不错。

http://www.xcar.com.cn/

做的很用心了感谢~

最开始设计程序就像网上给的那样,想要修改网址,就在代码上直接改,可是做着做着发现,容易出错,所以考虑做一款GUI的爬虫程序。


这里的ImgID就是汽车的类型号

URL就是网址

最下面的就是保存的路径

其实整个GUI的代码很简单,基本上涉及很浅的Tkinter知识,也没有多线程,所以这是最大的缺陷了,爬多了就会卡死,可能我以后有时间再做多线程吧,最近事太多。

entryVar1 = StringVar()
entry1 = Entry(window, textvariable=entryVar1, width=40)
entry1.grid(row=0, column=1)

entryVar2 = StringVar()
entry2 = Entry(window, textvariable=entryVar2, width=40)
entry2.grid(row=1, column=1)

text_result = Text(window, width=40, height=25)
text_result.grid(row=4, column=1)

entryVar3 = StringVar()
entry3 = Entry(window, textvariable=entryVar3, width=40)
entry3.grid(row=2, column=1)
entryVar3.set('F://get_img//test//')

这是定义的文本框和label。默认的保存到F://get_img//test//ImgID下

def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html.decode('GBK')
def getImg(html):
    reg = r'src="(.+?\.jpg)" width="?"'

    imgre = re.compile(reg)
    imglist = imgre.findall(html)

    x = 0

    m_path = str(entryVar3.get()) + str(entryVar1.get())
    if not os.path.isdir(m_path):
        os.makedirs(m_path)
    m_paths = m_path + '//'

    for imgurl in imglist:
        picName = '{0}' + str(entryVar1.get()) + '_{1}.jpg'
        urllib.request.urlretrieve(imgurl, picName.format(m_paths, x))

        x = x + 1
    # result='Downloading The ' + str(x) + ' of ' + str(entryVar1.get()) + ' Car'
    # print(result)

    return imglist

def hitMe():
    html = getHtml(str(entryVar2.get()))

    (getImg(html))
    # print('The'+str(entryVar1.get())+'Mission is over!')
    m_result = 'The ' + str(entryVar1.get()) + ' Mission is over!'
    text_result.insert(1.0, m_result + '\n')
def hitClear():
    # entryVar1.set('')
    entryVar2.set('')
def hitClearText():
    text_result.delete(1.0, END)

这是定义的子函数,整体来说还是挺省事的,比之前的操作更快更简洁友好。

完整的代码我已经放在Github上Grab_Images


猜你喜欢

转载自blog.csdn.net/baidu_36669549/article/details/80060292