鱼C论坛

 找回密码
 立即注册
查看: 2760|回复: 4

[作品展示] 发个爬妹子图的代码 刚写出来的

[复制链接]
发表于 2015-11-21 04:44:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ~风介~ 于 2015-11-23 19:50 编辑
  1. import http.cookiejar
  2. import urllib.request
  3. import urllib.parse
  4. import random
  5. from PIL import Image
  6. import gzip,re,os

  7. data_ = [('xinggan',57),('japan',24),('taiwan',7),('mm',24)]


  8. url_host = 'http://www.mzitu.com/'

  9. cur_file_dir = r'E:\Python34\PyTestFishc\mzitu'

  10. header_data = {
  11.     'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  12.     'Accept-Encoding':'gzip, deflate, sdch',
  13.     'Accept-Language':'zh-CN,zh;q=0.8',
  14.     'Cache-Control':'no-cache',
  15.     'Connection':'keep-alive',
  16.     'Host':'www.mzitu.com',
  17.     'Pragma':'no-cache',   
  18.     'Upgrade-Insecure-Requests':'1',
  19.     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
  20.     }
  21. def ungzip(data):
  22.     try:        
  23. # 尝试解压        
  24.         data = gzip.decompress(data)
  25.         print('解压完毕!')
  26.     except:
  27.         print('未经压缩, 无需解压')
  28.     return data

  29. def getOpener(_head):   
  30.     cj = http.cookiejar.CookieJar()
  31.     pro  = urllib.request.HTTPCookieProcessor(cj)
  32.     opener = urllib.request.build_opener(pro)   
  33.     header = []   
  34.     for key,value in _head.items():
  35.         elem = (key,value)
  36.         header.append(elem)
  37.     opener.addheaders = header   
  38.     return opener

  39. def Get_list(oop,listaddr):   
  40.     p = re.compile(r"data-original='(.+?\.jpg)'")
  41.     listaddr = p.findall(oop)   
  42.     return listaddr

  43. def Get_mzitu_url_list(listaddr,request_header = header_data,url = url_host):
  44.     opener = getOpener(request_header)
  45.     op = opener.open(url)
  46.     data = ungzip(op.read()).decode('utf-8')
  47.     return Get_list(data,listaddr)
  48.    
  49. def Save_img(url_list,request_header = header_data,Current_file_path = r'E:\Python34\PyTestFishc\mzitu'):
  50.     for each in url_list:
  51.         file_name = each.split('/')[-1]
  52.         if not (file_name in os.listdir()):
  53.             with open(file_name,'wb') as f:
  54.                 img = getOpener(request_header).open(each).read()               
  55.                 f.write(img)
  56.                 print('成功保存MZi图片:%s ...' % file_name)


  57. def Download_Map():
  58.     print('程序运行')
  59.     for each,each_1 in data_ :
  60.         os.chdir(r'E:\Python34\PyTestFishc\mzitu')
  61.         if not(each in os.listdir()):
  62.             os.mkdir(each)
  63.             print('成功创建文件夹 %s:' % each)            
  64.         os.chdir(each)        
  65.         for each_2 in range(1,each_1+1):
  66.             url_1_1 = url_host + each + r'/page/'+str(each_2)
  67.             print(url_1_1)
  68.             list_data = []
  69.             pp = Get_mzitu_url_list(list_data,url = url_1_1)
  70.             Save_img(pp)
  71.             list_data.clear()   
  72.    
  73. if __name__ == '__main__':
  74.     Download_Map()

  75.    














复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-21 08:59:07 | 显示全部楼层
看不懂呀,楼主加点注释好吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-21 11:42:49 | 显示全部楼层
呀呀:ton:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-23 19:51:18 | 显示全部楼层
可以考虑用代码格式发布代码哦~
工具条中的“<>”即是代码格式!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-24 12:05:20 | 显示全部楼层
过来 看一看 呵呵。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 04:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表