Python抓妹子图+多进程,python抓妹子图,# -*- coding
文章由Byrx.net分享于2019-03-23 04:03:20
Python抓妹子图+多进程,python抓妹子图,# -*- coding
# -*- coding: utf-8 -*-"""Created on Fri Aug 07 17:30:58 2015@author: Dreace"""import urllib2import sysimport timeimport osimport randomfrom multiprocessing.dummy import Pool as ThreadPool type_ = sys.getfilesystemencoding()def rename(): return time.strftime("%Y%m%d%H%M%S")def rename_2(name): if len(name) == 2: name = '0' + name + '.jpg' elif len(name) == 1: name = '00' + name + '.jpg' else: name = name + '.jpg' return namedef download_pic(i): global count global time_out if Filter(i): try: content = urllib2.urlopen(i,timeout = time_out) url_content = content.read() file_name = repr(random.randint(10000,999999999)) + "_" + rename_2(repr(count)) f = open(file_name,"wb") f.write(url_content) f.close() if os.path.getsize(file_name) >= 1024*11: count += 1 else: os.remove(file_name) except Exception, e: print edef Filter(content): for line in Filter_list: if content.find(line) == -1: return Truedef get_pic(url_address): global pic_list global time_out global headers try: req = urllib2.Request(url = url_address,headers = headers) str_ = urllib2.urlopen(req, timeout = time_out).read() url_content = str_.split("\'") for i in url_content: if i.find(".jpg") != -1: pic_list.append(i) except Exception, e: print eMAX = 100count = 0time_out = 60thread_num = 50pic_list = []page_list = []pic_kind = ["hot","share","mm","taiwan","japan","model"]Filter_list = ["imgsize.ph.126.net","img.ph.126.net","img2.ph.126.net"]dir_name = "C:\Photos\\"+rename()os.makedirs(dir_name)os.chdir(dir_name)start_time = time.time()url_address = "http://www.mzitu.com/model/page/"headers = {"User-Agent":" Mozilla/5.0 (Windows NT 10.0; rv:39.0) Gecko/20100101 Firefox/39.0"}for pic_i in pic_kind: for i in range(1,MAX + 1): page_list.append(url_address + pic_i + "/page/" + repr(i))page_pool = ThreadPool(thread_num)page_pool.map(get_pic,page_list)page_pool.close()page_pool.join()print "获取到".decode("utf-8").encode(type_),len(pic_list),"张图片,开始下载!".decode("utf-8").encode(type_)pool = ThreadPool(thread_num) pool.map(download_pic,pic_list)pool.close() pool.join()print count,"张图片保存在".decode("utf-8").encode(type_) + dir_nameprint "共耗时".decode("utf-8").encode(type_),time.time() - start_time,"s"
相关内容
- python线程池进一步认识,python线程池认识,线程池的概念
- python代码实例大小写转换,首字母大写,去除特殊字符,
- python操作mysql数据库代码,pythonmysql数据库,python操作m
- pygame simulate,pygame,import pygam
- python 调用windows api查看系统的电量,pythonapi,通过调用
- 取一列数中连续最长的奇数个数,列数最长奇数个数
- Python实现 深度优先算法生成迷宫,python迷宫, import
- Python sql server和postgresql的表结构转换,pythonpostgresql,#
- Python 实现简单的矩阵,python实现矩阵, #!/usr/b
- 文件去重,文件,__author__ =
评论关闭