鱼C论坛

 找回密码
 立即注册
查看: 25886|回复: 445

[技术交流] 爬取mzitu.com/zipai的妹子图

  [复制链接]
发表于 2020-2-10 20:13:03 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 沉好人 于 2020-2-12 14:35 编辑

爬取妹子图,
根据小甲鱼OOXX改
游客,如果您要查看本帖隐藏内容请回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-13 16:37:02 | 显示全部楼层
最近试了一下,原来的版本里正则式匹配不了图片链接了,重新改了一下
import requests
import re
import os
import easygui as g

def get_url(url):
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0'}
    req = requests.get(url, headers=headers)

    return req

def get_img_url(url1, url2): #图片地址
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0',
        'referer':url2      
        }
    req = requests.get(url1, headers=headers)

    return req

def get_page(url):  #共有多少页
    html = get_url(url).text
    p = r"page-numbers.+[\d]+/'"
    page_match = re.findall(p, html)
    for each in page_match:
        page = re.sub(r'\D','', each)
    
    return page

def find_picurl(url):   #每一页中的项目url
    
    html = get_url(url).text
    p = r'<li><a href="(https://www.mzitu.com/[\d]+)" target'
    picurl = re.findall(p, html)

    return picurl

def pro_name(url):      #每一页的项目名称
    html = get_url(url).text
    p = r"alt='(.+)' width='236'"
    targets = re.findall(p, html)

    return targets
    
def get_p_page(url):   #每一个项目的页数即图片数
    html = get_url(url).text
    p = r'<span>([\d]+)</span>'
    p_page = re.findall(p, html)
    for each in p_page:
        page = each
    
    return int(page)

def find_imgs(url):
    html = get_url(url).text
    p = re.search(r'img class="blur" src="(https.+\.jpg)', html)
    return p.group(1)

def save_img(url, ref_url):
    filename = url.split('/')[-1]
    with open(filename, 'wb') as f:
        img = get_img_url(url, ref_url).content
        f.write(img)
    
def main():
    folder = g.diropenbox("请选择存放照片的文件夹")
    os.listdir(folder)
    os.chdir(folder)
    
    url = "https://www.mzitu.com/xinggan/"
    page = get_page(url) #总共几页
    print("总共有{}页".format(page))
    f = True
    while f == True:
        Page = input("请输入下载第几页:")
        url1 = 'https://www.mzitu.com/xinggan/page/{}/'.format(Page)
        
        pic_url = find_picurl(url1)
        pic_pro = pro_name(url1)
        num = len(pic_url)   #每一页的项目个数
        print("第%s页共有%d个项目" % (Page, num))
        for each in range(1, num+1):
            print("第%d个项目是:" % each)
            print(pic_pro[each-1])
        Num = int(input("请输入需要下载第几个项目:"))
        p_page = get_p_page(pic_url[Num-1])
        print("共有%d页:" % p_page)
        for i in range(1,p_page+1):
            url2 = pic_url[Num-1] + '/' + str(i)    
            img_addr = find_imgs(url2)
            print(img_addr)
            save_img(img_addr, url2)
        print("下载完毕")
        ans = input("是否继续下载:输入Y/N")
        if ans == 'N':
            f = False

if __name__ == '__main__':
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-2-11 00:58:22 | 显示全部楼层
哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 11:52:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-12 01:25:32 | 显示全部楼层
haha
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-12 14:22:00 | 显示全部楼层
111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-12 14:31:54 | 显示全部楼层
更OOXX过不去了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-12 23:02:24 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-12 23:08:36 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-12 23:45:51 | 显示全部楼层
想学一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 00:05:56 | 显示全部楼层
22222222222222222222
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 02:33:38 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-13 03:15:17 | 显示全部楼层
111111111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 09:08:26 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 09:54:22 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 11:41:45 | 显示全部楼层
???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-13 18:07:54 | 显示全部楼层
666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 18:41:07 | 显示全部楼层
.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-13 19:25:51 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 21:06:41 | 显示全部楼层
看看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 22:11:31 From FishC Mobile | 显示全部楼层
9999
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 14:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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