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