马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
|