鱼C论坛

 找回密码
 立即注册
查看: 4556|回复: 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组)

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


  1. import requests
  2. from bs4 import BeautifulSoup
  3. import os
  4. import datetime,time

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

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

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

  51.     def request(self,url):
  52.         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',
  53.                       'Referer':'http://i.meizitu.net'}  #加Referer属性是防止盗链图的产生,目的是告诉服务器当前请求是从哪个页面请求过来的
  54.         content = requests.get(url, headers=headers)
  55.         return content

  56.     def mkdir(self, path):
  57.         self.path = 'D:/11MM/'+ path.strip()
  58.         isExists = os.path.exists(self.path)
  59.         if not isExists:
  60.             os.makedirs(self.path)
  61.             print(u'已建立 ', self.path, u'的文件夹')
  62.             return True
  63.         else:
  64.             print(self.path, u'的文件夹已存在')
  65.             return False

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

  68. print('\n下载任务全部完成!')
  69. print('\n5秒后程序将关闭!')
  70. time.sleep(5)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-19 18:22:27 | 显示全部楼层
requests和BeautifulSoup模块在哪
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-19 18:47:27 | 显示全部楼层
好吧。。。我用的py3,切换成py2就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-22 17:38:12 | 显示全部楼层
厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-29 21:32:04 | 显示全部楼层
这个运行报错,是因为我装的python3.8版吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

网上下载
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

没装requests,bueatifulsoup
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2020-2-29 22:41:45 | 显示全部楼层
没有bs
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 17:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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