鱼C论坛

 找回密码
 立即注册
查看: 1886|回复: 2

[作品展示] 爬虫爬取美图录的套图【可以自动生成对应文件夹】

[复制链接]
发表于 2020-4-15 16:34:44 | 显示全部楼层 |阅读模式

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

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

x
  1. import urllib.request
  2. import os
  3. import re
  4. import random

  5. def url_open(url):
  6.     headers = {
  7.         'Referer': 'https://www.meitulu.com/',
  8.         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36'
  9.     }
  10.     req = urllib.request.Request(url, headers=headers)
  11.     response = urllib.request.urlopen(req)
  12.     html = response.read().decode('utf-8')
  13.     return html


  14. def get_album(url):
  15.     html = url_open(url)
  16.     album1 = re.findall(r'https://www.meitulu.com/item/\d{1,5}.html', html)
  17.     album = set(album1)
  18.     #print(album)
  19.     return album

  20. def get_img_addrs(each,pages):
  21.     html1 = url_open(each)
  22.     img_1 = set(re.findall(r'https://mtl.gzhuibei.com/images/img/\d{1,5}/1.jpg', html1))
  23.     #print(str(img_1)[2:-7])
  24.     img_addrs = []
  25.     for i in range(1,pages):
  26.         addrs = str(img_1)[2:-7] + str(i) + '.jpg'
  27.         img_addrs.append(addrs)
  28.     #print(img_addrs)
  29.     return img_addrs

  30. def find_pages(each):
  31.     html1 = url_open(each)
  32.     title_add1 = re.search(r'<h1>', html1)
  33.     title_add2 = re.search(r'</h1>', html1)
  34.     # print(title_add1.span(),title_add2.span())
  35.     title = html1[title_add1.span()[1]:title_add2.span()[0]]
  36.     p = re.findall(r'图片数量: \d\d 张', html1)
  37.     print(title,p)
  38.     page = re.findall(r'\d\d', str(p))
  39.     #print(page)
  40.     page.append('1')
  41.     pages = int(max(page))
  42.     return pages,title


  43. urllist = ['https://www.meitulu.com/','https://www.meitulu.com/t/yingsihui-wings/','https://www.meitulu.com/t/bomb.tv/','https://www.meitulu.com/t/wpb-net/',
  44.            'https://www.meitulu.com/t/qingdouke/','https://www.meitulu.com/t/tuigirl/','https://www.meitulu.com/t/xiuren/','https://www.meitulu.com/t/1371/',
  45.            'https://www.meitulu.com/t/imiss/','https://www.meitulu.com/t/dianannan/','https://www.meitulu.com/t/youwuguan/','https://www.meitulu.com/t/yunvlang/']
  46. url = random.choice(urllist)
  47. path = 'D:\python\learn'

  48. album = get_album(url)
  49. for each in album:

  50.     count = 1
  51.     pages,title = find_pages(each)
  52.     folder = title
  53.     os.chdir('D:\python\learn')
  54.     os.mkdir(folder)
  55.     os.chdir(folder)
  56.     img_addrs = get_img_addrs(each,pages)
  57.     for each1 in img_addrs:
  58.         headers = {
  59.             'Referer': 'https://www.meitulu.com/',
  60.             'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36'
  61.         }
  62.         req2 = urllib.request.Request(each1, headers=headers)
  63.         response2 = urllib.request.urlopen(req2)
  64.         mm_img = response2.read()

  65.         filename = str(count)+'.jpg'
  66.         print('下载第' + str(count) + '张图片')
  67.         with open(filename, 'wb') as f:
  68.             f.write(mm_img)
  69.             count += 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 16:56:11 | 显示全部楼层
第62行要改成自己代码文件存在的文件夹路径
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-15 17:10:29 | 显示全部楼层
大哥请收下我的膝盖
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-2 18:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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