鱼C论坛

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

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

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

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

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

x
import urllib.request
import os
import re
import random

def url_open(url):
    headers = {
        'Referer': 'https://www.meitulu.com/',
        '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'
    }
    req = urllib.request.Request(url, headers=headers)
    response = urllib.request.urlopen(req)
    html = response.read().decode('utf-8')
    return html


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

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

def find_pages(each):
    html1 = url_open(each)
    title_add1 = re.search(r'<h1>', html1)
    title_add2 = re.search(r'</h1>', html1)
    # print(title_add1.span(),title_add2.span())
    title = html1[title_add1.span()[1]:title_add2.span()[0]]
    p = re.findall(r'图片数量: \d\d 张', html1)
    print(title,p)
    page = re.findall(r'\d\d', str(p))
    #print(page)
    page.append('1')
    pages = int(max(page))
    return pages,title


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/',
           'https://www.meitulu.com/t/qingdouke/','https://www.meitulu.com/t/tuigirl/','https://www.meitulu.com/t/xiuren/','https://www.meitulu.com/t/1371/',
           'https://www.meitulu.com/t/imiss/','https://www.meitulu.com/t/dianannan/','https://www.meitulu.com/t/youwuguan/','https://www.meitulu.com/t/yunvlang/']
url = random.choice(urllist)
path = 'D:\python\learn'

album = get_album(url)
for each in album:

    count = 1
    pages,title = find_pages(each)
    folder = title
    os.chdir('D:\python\learn')
    os.mkdir(folder)
    os.chdir(folder)
    img_addrs = get_img_addrs(each,pages)
    for each1 in img_addrs:
        headers = {
            'Referer': 'https://www.meitulu.com/',
            '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'
        }
        req2 = urllib.request.Request(each1, headers=headers)
        response2 = urllib.request.urlopen(req2)
        mm_img = response2.read()

        filename = str(count)+'.jpg'
        print('下载第' + str(count) + '张图片')
        with open(filename, 'wb') as f:
            f.write(mm_img)
            count += 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 16:56:11 | 显示全部楼层
第62行要改成自己代码文件存在的文件夹路径
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-15 17:10:29 | 显示全部楼层
大哥请收下我的膝盖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 12:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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