python做一个简易图片下载工具
Posted kusy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python做一个简易图片下载工具相关的知识,希望对你有一定的参考价值。
代码有点乱,先这样
# -*- coding:utf-8 -*- #__author__ :kusy #__content__:文件说明 #__date__:2018/11/01 11:01 import urllib.request, urllib.parse, urllib.error import os import re import time import threading # fileno = 0 # lock = threading.Lock() def mkdir(dir): cd = os.path.abspath(dir) if not os.path.exists(cd): os.mkdir(cd) def gethtml(url): page = urllib.request.urlopen(url) html = page.read() # print(html) return html def getimage(html, searchwords): reg = r‘"img":"(http:.*?.jpg)"‘ imgre = re.compile(reg) imglist = re.findall(imgre,html.decode(‘utf-8‘)) # print(imglist) index_start = 0 splitcount = round(len(imglist) / 4) threadlist = [] # 开4个线程,分开同时下载 for t in range(4): if index_start + splitcount > len(imglist): imglist_part = imglist[index_start:] else: imglist_part = imglist[index_start:index_start + splitcount] index_start += splitcount threadlist.append(threading.Thread(target=download, args=(imglist_part, searchwords, t + 1))) for th in threadlist: th.start() for th in threadlist: th.join() def download(imglist,searchwords,threading_no): # global fileno fileno = 0 for imgurl in imglist: imgurl = imgurl.replace(‘\\‘,‘‘) # lock.acquire() try: filename = searchwords + ‘-‘ + str(threading_no) + ‘-‘ + str(fileno) # print(filename + ‘ 获取中...‘) urllib.request.urlretrieve(imgurl,‘下载图片/%s.jpg‘ % filename) # except (urllib.error.HTTPError, urllib.error.URLError): except Exception: continue # 打印信息放在这里是因为,如果放在前面,当前请求异常时会重复打印该信息 print(filename + ‘ 获取中...‘) fileno += 1 # lock.release() if __name__ == ‘__main__‘: mkdir(u‘下载图片‘) searchwords = input(u‘请输入搜索内容后回车 >>> ‘) print(u‘ -----------------------文件存放在[下载图片]目录下-----------------------‘) # 指定图片来源,这里是360搜索,可以换成其他的 myurl = "http://image.so.com/i?q=" + urllib.parse.quote(searchwords) + "&src=srp" html = gethtml(myurl) getimage(html, searchwords) print(u‘ -----------------------下载完毕,谢谢!!-----------------------‘) print(u‘ -----------------------CopyRight @Kusy -----------------------‘) time.sleep(5)
执行效果
转成exe文件,运行
以上是关于python做一个简易图片下载工具的主要内容,如果未能解决你的问题,请参考以下文章
python之路-利用索引切片功能做一个简易的两个未知数的加法计算器,代码如下:
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段