鱼C论坛

 找回密码
 立即注册
查看: 3710|回复: 9

[技术交流] (初学)爬妹子图最全程序和最美程序。。爱上爬虫了

[复制链接]
发表于 2019-6-14 17:46:43 | 显示全部楼层 |阅读模式

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

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

x


学习爬虫教程,网上资源超多。妹子图是爬虫必学之地。。。正好,学习用之,我觉得就差个GUI或者封装EXE就能传给朋友一起分享了。。。

程序运行开始走起。。。

注意事项:
1、截至目前(2019-06-14),妹子图网站共计有2998组妹子套图...
2、下载一组套图平均约10秒,大小约10M,请合理安排下载组数..
3、将从最新日期的的套图开始下载...
4、本文件将放入 D:/11MM 文件夹下面

请输入需要下载的套图组数:3
开始下载套图: 传统与性感相结合 女模心妍小公主韵味民国风温柔美艳
已建立  D:/11MM/传统与性感相结合 女模心妍小公主韵味民国风温柔美艳 的文件夹
正在下载第1组,本组下有45照片(还剩余1组)

.......
下载任务全部完成!

import requests
from bs4 import BeautifulSoup
import os
import datetime,time

class mzitu():
    global co_sl,m_sl
    co_sl=0
    def all_url(self,url):
        date_day=datetime.date.today()
        html = self.request(url)##调用request函数把套图地址传进去会返回给我们一个response
        all_a = BeautifulSoup(html.text, 'lxml').find('div',class_='all').find_all('a')
        print('''注意事项:
1、截至目前(%s),妹子图网站共计有%s组妹子套图...
2、下载一组套图平均约10秒,大小约10M,请合理安排下载组数..
3、将从最新日期的的套图开始下载...
4、本文件将放入 D:/11MM 文件夹下面 \n'''%(date_day,len(all_a) ))
        self.m_sl=int(input('请输入需要下载的套图组数:'))
        
        for a in all_a[1:self.m_sl]:
            global co_sl
            co_sl+=1
            title = a.get_text()
            print(u'开始下载套图:', title)
            path = str(title).replace("?",'_')
            self.mkdir(path) #调用mkdir函数创建文件夹!这儿path代表的是标题title哦!
            href = a['href']
            #print(href+ '     这是1')
            self.html(href)#调用html函数把href参数传递过去!href是啥还记的吧? 就是套图的地址哦!

    def html(self,href):#这个函数是处理套图地址获得图片的页面地址
        html = self.request(href)
        max_span = BeautifulSoup(html.text,'lxml').find('div',class_='pagenavi').find_all('span')[-2].get_text()
        print('正在下载第%s组,本组下有%s照片(还剩余%s组等待下载)\n'%(co_sl,max_span,self.m_sl-1-co_sl))
        for page in range(1,int(max_span)+1):
            page_url = href +'/' +str(page)
            #print(page_url+'这是**2')
            self.img(page_url)
            

    def img(self,page_url):#这个函数处理图片页面地址获得图片的实际地址
        img_html = self.request(page_url)
        img_url = BeautifulSoup(img_html.text,'lxml').find('div',class_ ='main-image').find('img').get('src')
        #print(img_url+'这是_url****3')
        self.save(img_url)
        
    def save(self,img_url):
        name = self.path+'/'+img_url.split('/')[-1]
        #print(name + '这是4')
        img = self.request(img_url)
        img_html = img.content
        with open(name,'wb') as f:
            f.write(img_html)

    def request(self,url):
        headers ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',
                      'Referer':'http://i.meizitu.net'}  #加Referer属性是防止盗链图的产生,目的是告诉服务器当前请求是从哪个页面请求过来的
        content = requests.get(url, headers=headers)
        return content

    def mkdir(self, path):
        self.path = 'D:/11MM/'+ path.strip()
        isExists = os.path.exists(self.path)
        if not isExists:
            os.makedirs(self.path)
            print(u'已建立 ', self.path, u'的文件夹')
            return True
        else:
            print(self.path, u'的文件夹已存在')
            return False

Mzitu = mzitu()
Mzitu.all_url('http://www.mzitu.com/all')##给函数all_url传入参数

print('\n下载任务全部完成!')
print('\n5秒后程序将关闭!')
time.sleep(5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-19 18:22:27 | 显示全部楼层
requests和BeautifulSoup模块在哪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-19 18:47:27 | 显示全部楼层
好吧。。。我用的py3,切换成py2就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2020-1-29 21:32:04 | 显示全部楼层
这个运行报错,是因为我装的python3.8版吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-25 12:00:44 | 显示全部楼层
小狼狼头 发表于 2019-6-19 18:22
requests和BeautifulSoup模块在哪

网上下载
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-25 12:02:14 | 显示全部楼层
tianyamingyue 发表于 2020-1-29 21:32
这个运行报错,是因为我装的python3.8版吗?

没装requests,bueatifulsoup
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-25 21:31:23 | 显示全部楼层
搞好了,请问每个网站需要写不同的代码吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2020-3-4 10:24:51 | 显示全部楼层
沙发


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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