作为一个python还没入门的小白,搞懂这段代码实在是很不容易,还要去学html的知识(#黑脸)

因此我加上了注释,比较好读懂点

#coding=utf-8
import time
import requests
from bs4 import BeautifulSoup
import os
import sysif(os.name == 'nt'):print(u'你正在使用win平台')
else:print(u'你正在使用linux平台')header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
#http请求头
all_url = 'http://www.mzitu.com'
start_html = requests.get(all_url,headers = header)#保存地址
path = 'D:/mzitu/'#找寻最大页数
soup = BeautifulSoup(start_html.text,"html.parser")    #定义为beautifulsoup类parser
page = soup.find_all('a',class_='page-numbers') #page为一个列表,找到标签为a的,属性class为‘page-numbers'的标签
max_page = page[-2].text #观察最大页数在-2处,用.text取文本信息
same_url = 'http://www.mzitu.com/page/'
for n in range(1,int(max_page)+1):ul = same_url+str(n)start_html = requests.get(ul, headers=header)soup = BeautifulSoup(start_html.text,"html.parser")#标签的寻找find是一对一对的然后用text取其中内容all_a = soup.find('div',class_='postlist').find_all('a',target='_blank')#在find  div的大类下找到所有标签a且a标签中target为blank的标签(因为有多个a类标签,需要把没用的排除掉)for a in all_a:    #all_a一共找到两个部分,第一个部分是空的,第二部分才能提取得到titletitle = a.text #提取文本内容就是在<>尖括号以外的信息if(title != ''):print("准备扒取:"+title)#win不能创建带?的目录  如果目录中含有?将其替换为''if(os.path.exists(path+title.strip().replace('?',''))):#如果目录存在(exist)返回1,flag = 1flag=1else:os.makedirs(path+title.strip().replace('?',''))flag=0os.chdir(path + title.strip().replace('?',''))#改变当前工作目录到指定路径href = a['href']#图片地址html = requests.get(href,headers = header)mess = BeautifulSoup(html.text,"html.parser")pic_max = mess.find_all('span')pic_max = pic_max[10].text #最大页数if(flag == 1 and len(os.listdir(path+title.strip().replace('?',''))) >= int(pic_max)):print('已经保存完毕,跳过')continuefor num in range(1,int(pic_max)+1):time.sleep(1)#抓慢一点,上次爬的太快ip被封了pic = href+'/'+str(num)#图片所在页的地址html = requests.get(pic,headers = header)mess = BeautifulSoup(html.text,"html.parser")pic_url = mess.find('img',alt = title)#找到标签为imghtml = requests.get(pic_url['src'],headers = header)#这里找到的才是真正图片的地址file_name = pic_url['src'].split(r'/')[-1]#文件名为地址分割后的最后一个字符串f = open(file_name,'wb')f.write(html.content)#content是类函数,在这里就是地址html所表示的图片
                f.close()print('完成')print('第',n,'页完成')

转载于:https://www.cnblogs.com/cunyusup/p/7247444.html

python 爬取妹子图相关推荐

  1. Python 爬取妹子图02

    爬取laotuzi.com这个网站的图片 原本想爬的是妹子图这个网站的,结果应该是IP被封了,用电脑连接WiFi访问不了这个网站,我以为是断网了,但访问其他网站有能正常访问,用手机流量访问妹子图网站, ...

  2. 教你用Python爬取妹子图APP

    教你用Python爬美之图APP全站图片 爬取结果 程序只运行了2h,最后认为程序没有问题了就关了(我可不是去杀生去了...... 运行环境 Python 3.5+ Windows 10 VSCode ...

  3. python多线程爬取妹子图

    python多线程爬取妹子图 python使用版本: 3.7 目的: 自己选择下载目录,逐个将主题图片保存到选定目录下. 效果: 一秒钟左右下载一张图片,下了七八十组图片暂时没什么问题,不放心的话,可 ...

  4. Python 爬虫入门(二)——爬取妹子图

    Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...

  5. python爬虫-爬妹子图_Python 爬虫入门之爬取妹子图

    Python 爬虫入门之爬取妹子图 来源:李英杰  链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...

  6. python爬虫妹子图_Python 爬虫入门(二)——爬取妹子图

    Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. 公众号:[智能制造社区].欢迎关注,分享智能制造与编程那些事. 爬虫成果 当你运行代码后,文件夹就会 ...

  7. 爬取妹子图(python):爬虫(bs+rq)+ gevent多线程

    爬取妹子图(python):爬虫(bs+rq)+ gevent多线程 简介 我观察爬取妹子图算是爬虫专业户必做的事情之一,所以我也做了一个,结果是有3.45GB,49847张图. 打算依靠这个图库做个 ...

  8. python爬取妹纸图片

    初学python,刚好看到爬取妹纸图片的教学视频,于是跟着学习学习python网络爬虫,使用python爬取图片. 进入主页,可以看到妹子自拍,一共446页之多 0.0 ,如下图所示: 查看网页url ...

  9. Python爬虫 - scrapy - 爬取妹子图 Lv1

    0. 前言 这是一个利用python scrapy框架爬取网站图片的实例,本人也是在学习当中,在这做个记录,也希望能帮到需要的人.爬取妹子图的实例打算分成三部分来写,尝试完善实用性. 系统环境 Sys ...

最新文章

  1. 【Linux驱动】ThinkPad笔记本wifi模块rtl8821ce在ubuntu16.04的驱动(默认没有)
  2. [IOI2008] Fish 鱼
  3. [20181015]为什么是3秒.txt
  4. html文件头部固定代码
  5. 电脑ip地址设置_路由器动态IP和静态IP上网方式怎么设置【设置教程】
  6. npm包管理器安装模块
  7. 2022春节档新片预售总票房达1.08亿
  8. mysql_query 资源标识符_PHP mysql_query() 函数解析
  9. 如何评估语音质量好坏?
  10. 小程序保存图片相册无响应
  11. 更换tomcat 地址栏图标
  12. Windows 应用生成MiniDump文件的方法笔记
  13. Docker Desktop安装
  14. 开源、私有化部署,这款知识管理系统还有多少惊喜是我们不知道的
  15. React.js介绍
  16. 【翻译】关于ADXL345连接指南
  17. Android 简单直接--无需jar包zing实现生成、扫描二维码
  18. stm32f103c8t6串口数据包收发
  19. 简述你对人工智能未来发展的看法?
  20. 华为RH2288V3服务器不重构RAID扩容磁盘方法

热门文章

  1. K-means 聚类算法的图像区域分割
  2. java validate 框架_如何使用validator框架来validatebean
  3. rabbitmq实战指南_太香了这份架构解密:从分布式到微服务(第二版),神仙进阶指南...
  4. python标准库os.path中_Python零基础入门学习19:常用标准库之os.path子库
  5. 3dmax phoenix fd4.0汉化补丁_教你屏蔽 Win10 Flash 删除补丁 - Windows 10
  6. 文本分类实战--从TFIDF到深度学习CNN系列效果对比(附代码)
  7. python取消任务的方法_python里取消一个未曾执行的任务
  8. 一个空值_3秒快速、大批量删除或修改Excel中的空值 | 学术小课堂
  9. mysql学习day02
  10. Windows 8 Directx 开发学习笔记(十三)利用模板实现木箱镜像