您的位置:首页 > 编程语言 > Python开发

python爬虫淘宝图片+GUI+打包成exe

2017-08-09 11:08 423 查看
参考:勿在浮沙筑高台

一、操作工具

     pycharm+Anaconda2(python2.7)    cmd输入python可以看到python版本号,若输出错误。在环境变量PATH中加分号  ;   添加Anaconda中python.exe所在路径我所在的目录  D:\Anaconda;D:\Anaconda\Scrips    再次cmd输入python查看quit()退出。     py2exe选择对应版本:py2exe

二、代码

1、创建Getimg.py

import re
import urllib           #网页操作模块
#获取网页内容
def getHtml(url):
page=urllib.urlopen(url)  #打开网址
html=page.read()          #读取网页中的内容并存储在html
return html

#获取图片
def getImg(html):
reg=r'//[\w]*\.?alicdn\.com[^"\']+\.jpg' #网页内容筛选
imgre=re.compile(reg)
imglist=re.findall(imgre,html)           #找到匹配待输入网页内容存储在imglist
print(len(imglist))
x=1
for imgurl in imgl
4000
ist:
print(imgurl)
imgurl='https:'+imgurl
#urlretrieve方法将url定位到的html文件下载到你本地的硬盘中。如果不指定filename,则会存为临时文件。urlretrieve()返回一个二元组(filename,mine_hdrs)
urllib.urlretrieve(imgurl,'%s.jpg'%x)
x+=1
#下载图片
def DownLoadImg(url):
html=getHtml(url)
getImg(html)
输入网址测试是否正确

2、界面设计

from Tkinter import *  # Tk会调用操作系统提供的本地GUI接口 完成最终的GUI
import tkMessageBox as mb

# 从Frame派生一个Application类,这是所有Widget的父容器:
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack(fill=X, padx=100)
self.createWidgets()

def createWidgets(self):
self.nameInput = Entry(self)
self.nameInput.pack(fill=X, pady=10)
self.nameInput.pack(fill=X, padx=5)
self.alertButton = Button(self, text=(' 请输入网址 '), command=self.FUN)
self.alertButton.pack(fill=X, padx=30)
self.alertButton.pack(fill=X, pady=10)

def FUN(self):
name = self.nameInput.get() or 'blank'
if name == 'blank':
mb.showinfo('Message', '网址不合法!')
else:
DownLoadImg(name)
mb.showinfo('Message', '下载成功并保存!')

app = Application()  # 实例化Application
app.master.title('淘宝网页图片爬取')  # 对话框标题
app.mainloop()  # 主消息循环

3、创建convert.py

import py2exefrom distutils.core import setupsetup(windows=[{"script": "Getimg.py"}])

4、生成exe打包文件

安装py2exe  选择默认环境       D:\Anaconda\Lib\site-packages输入:python convert.py py2exe
    显示以上内容即可生成两个文件夹,在dist文件下找到Getimg.exe 应用文件,点击打开输入淘宝网址即可在该文件下下载网页中的jpg图片。 

三、总结

1、电脑上安装了Anaconda2(python2.7.13)和Anaconda3(python3.6.1)两个版本由于python3版本所对应py2exe软件不匹配,难找,所以选择版本2的。2、由python3改过来的代码主要是安装包名字不同以及所调用的成员函数不同,其他几乎一致。3、改写代码以及调试过程中遇到各种问题,在网上有的搜不到,都不想弄了,但想想连个小问题都解决不了,那还是别当程序猿。      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: