Python爬取系列妹子图(福利哟~~~)

用到的模块:requests 和 lxml中的html

今天呢是10月24日,天气一如既往的好,也是传说中的程序员节,来爬波妹子图岂不美哉!!!

开始操作:

我们今天的实战网页就是这个妹子图的首页内(包括详情页)所有页数的图片,我们打开F12审查元素,先获得首页的所有页面的数量,如下图所示:
获得这个数字可以用xpath来实现:

n = res.xpath('//div[@class="nav-links"]/a[@class="page-numbers"][4]/text()')

可以为这个操作定义一个方法:

    def get_alln(self):#返回系列中所有页面总数response = requests.get(self.url,headers = self.header)response.encoding = "utf-8"res = html.fromstring(response.text)n = res.xpath('//div[@class="nav-links"]/a[@class="page-numbers"][4]/text()')#提取总页面数量return n[0]

返回即可

接下来呢,就是获得其中一个页面详情页的url了,通过审查元素我们可以发现:
详情页的url都在 li 标签中,提取该url如下:

all_img_urllist = res.xpath('//div[@class="postlist"]/ul[@id="pins"]/li/a/@href')

将其所有详情页url都放到一个列表中,方便以后的访问,封装成函数如下:

    def get_url(self,n):#单个页面中详情页地址allurl = "https://www.mzitu.com/page/{n}/".format(n = n)#n为第几个页面response = requests.get(self.url, headers=self.header)response.encoding = "utf-8"res = html.fromstring(response.text)all_img_urllist = res.xpath('//div[@class="postlist"]/ul[@id="pins"]/li/a/@href')return all_img_urllist

现在我们已经得到单个页面的所有详情页的url了,接下来就是对详情页动手啦!!!

对于详情页,我们还是做和首页一样的操作
1.获得详情页的总页数量
2.提取详情页图片的url数据

第一步,我们随便可以进入一个详情页,通过审查元素我们可以发现如下数据:

也就是说详情页中一共有62个页面同时也对应着62张图片,当然有些可能被和谐了导致没有那么多图片,这点我们可以进行过滤的,提取页面数据如下:

n = res.xpath('//div[@class="pagenavi"]/a[5]//text()')

第二部的得到图片url位置如下:

提取代码:

returl = res.xpath('//div[@class="main-image"]/p/a/img/@src')

以上操作就是对首页的单个页面的单个详情页的单个图片进行提取url操作,如果想要对首页的多个页面的多个详情页的多个图片提取图片url筛选操作只需加几个循环即可!

总的来说,python爬虫的步骤其实仅仅是获得数据列表、分析数据、提取数据、保存数据这几个步骤,看了我之前的几篇文章的朋友应该对requests的使用有了深刻理解,那么接下来的文章我会用爬虫界的扛把子scrapy框架实现爬虫操作,喜欢的朋友丢一个小赞赞哟~~~

最后的最后,上代码!!:

import requests
from lxml import html#Mr.离class Meizitu():def __init__(self,url):self.url = urlself.header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}self.count = 1def get_alln(self):#返回系列中所有页面总数response = requests.get(self.url,headers = self.header)response.encoding = "utf-8"res = html.fromstring(response.text)n = res.xpath('//div[@class="nav-links"]/a[@class="page-numbers"][4]/text()')#提取总页面数量return n[0]def get_url(self,n):#单个页面中详情页地址allurl = "https://www.mzitu.com/page/{n}/".format(n = n)response = requests.get(self.url, headers=self.header)response.encoding = "utf-8"res = html.fromstring(response.text)all_img_urllist = res.xpath('//div[@class="postlist"]/ul[@id="pins"]/li/a/@href')return all_img_urllistdef get_imgurl(self,aurl):#详情页中图片地址response = requests.get(aurl, headers=self.header)response.encoding = "utf-8"res = html.fromstring(response.text)n = res.xpath('//div[@class="pagenavi"]/a[5]//text()')print("本详情页共有图片:",n[0])imgurl_list = []for i in range(int(n[0])):imgurl = aurl+"/{n}".format(n = i+1)imgurl_list.append(self.get_burl(imgurl))print(imgurl_list)return imgurl_listdef get_burl(self,burl):#返回当前详情页的图片地址response = requests.get(burl, headers=self.header)response.encoding = "utf-8"res = html.fromstring(response.text)returl = res.xpath('//div[@class="main-image"]/p/a/img/@src')print("图片地址为:",returl)if returl!=[]:return returldef save_img(self,imgurl_list):#保存图片header2 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36","Referer":"https://www.mzitu.com/"}for img in imgurl_list:if img == None:continueresponse = requests.get(img[0],headers=header2).contentwith open("D:\英雄时刻\妹子图\{count}.jpg".format(count=self.count),"wb") as f:f.write(response)self.count += 1print(self.count," is ok")def start(self):#开始n = self.get_alln()for i in range(int(n)):all_img_urllist = self.get_url(i+1)print(all_img_urllist)for url in all_img_urllist:#处理详情页图片数据imgurl_list = self.get_imgurl(url)print("图片url列表:",imgurl_list)self.save_img(imgurl_list)if __name__ == '__main__':url = "https://www.mzitu.com/"img = Meizitu(url)img.start()

Python爬取系列妹子图实战总结(程序员节福利哟)相关推荐

  1. python爬取图片源码_半次元图片爬取-python爬取半次元图片源码下载-西西软件下载...

    python爬取半次元图片源码,由大神自制的python爬取工具,本源码针对半次元图片平台,可以爬取最新的网站图片资源,支持自定义保存目录,非常方便,需要requests库的支持,想要相关源码资源的朋 ...

  2. Python爬取暴走漫画动态图

    最近再之乎上看到比较好的Python爬虫教程,看过之后对爬虫有了大概的了解,随后自己写了个爬取暴走漫画动图的爬虫练练手,另外附上Python爬虫教程的原始链接,完整看一遍教程之后还是会有很多收获的 源 ...

  3. python爬取喜马拉雅_Python爬虫实战案例之爬取喜马拉雅音频数据详解

    这篇文章我们来讲一下在网站建设中,Python爬虫实战案例之爬取喜马拉雅音频数据详解.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 前言 喜马拉雅是专业的音频分享平台,汇集 ...

  4. python 知乎美女_知乎大神教你用Python爬取网站美女图,附代码!

    都知道Python的抓取功能强大,可以帮我们从海量的数据中爬取所需要的进行分析.下面,就给大家分享知乎大神怎么用Python爬取高颜值美女! 1.数据源 知乎话题『美女』下所有问题中回答所出现的图片 ...

  5. Python爬取书包网文章实战总结

    python爬取书包网文章总结 今天闲来无事去看小说,但是发现没办法直接下载,所以呢就用python爬虫来下载一波了,哈哈- 爬取的是这篇小说:剑破九天(是不是很霸气,话不多说,开始-) 总体思路步骤 ...

  6. 手把手教你Python爬取女神套图

    疲惫的生活里总要有些温柔梦想吧 目标URL:http://www.win4000.com/meinvtag4_1.html 爬取美桌网某个标签下的美女壁纸,点进详情页可以发现,里面是一组套图 一.网页 ...

  7. 福利!手把手教你Python爬取女神套图

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者:叶庭云 来源:凹凸数据 作者:叶庭云 CSDN ...

  8. python画美女代码_教你用python爬取网站美女图(附代码及教程)

    我前几篇文章都是说一些python爬虫库的用法,还没有说怎样利用好这些知识玩一些好玩的东西.那我今天带大家玩好玩又刺激的,嘻嘻!对了,requests库和正则表达式很重要的,一定要学会!一定要学会!! ...

  9. python爬取网站美女图(附代码及教程)爬虫爬取海量手机壁纸,电脑壁纸,美女图片,风景图片等

    想要练习爬虫的兄弟们,可以看看这个 如果大神们看到有哪里可以改进的地方,请告诉小弟,我是个纯纯新手,练习了几次爬虫 以前一直用的BeautifulSoup,一直没有接触过正则表达式 正则表达式是一个非 ...

最新文章

  1. android 垂直 SeekBar 源代码(VerticalSeekBar)[转]
  2. dcase_util教程
  3. .NET Remoting
  4. 《线程管理:传递参数、确定线程数量、线程标识》
  5. CVPR 2021 Oral | GLEAN: 基于隐式生成库的高倍率图像超分辨率
  6. 【英语学习】【Daily English】U08 Dating L01 She is the one for me.
  7. idea2020代码el组件红色波浪线_Android实现炫酷的ViewPager3D组件
  8. mysql odbc 64位 驱动_MySQL ODBC驱动程序下载
  9. Chrome对应webdriver版本
  10. matlab图片数据库读取,MATLAB无法读取图像数据库问题
  11. 信息系统与信息化、信息系统开发方法、常规信息系统集成技术
  12. 梦三国2英霸模式貂蝉攻略(玩大流)
  13. django orm查询经纬度最近距离的数据
  14. 基于微信视频分享平台小程序设计与实现 开题报告
  15. 洛谷P1075 质因数分解C语言
  16. SI wave仿真前准备工作步骤
  17. 打包rpm包报错contains an invalid rpath
  18. Appium源码分析(4)-控制器模块
  19. LabVIEW生成exe错误解决方案(生成时VI断开,该VI已设置为不保存程序框图)
  20. docker run 指定 entrypoint

热门文章

  1. CSS第七天学习总结—— vertical-align 属性应用
  2. AST的一次简单尝试
  3. 【php毕业设计】基于php+mysql+apache的课程网站管理系统设计与实现(毕业论文+程序源码)——课程网站管理系统
  4. 喜马拉雅xm格式转化mp3_如何把喜马拉雅音频改为mp3格式
  5. precision and recall
  6. 【JAVA基础速过】第2章 Java 基本语法(上):变量
  7. 使用devops的团队_DevOps团队如何为网络星期一做准备
  8. 基于SpringCloudAlibaba模拟商城下单功能
  9. 使用计算机连接bmcc,【供应BMCC EF-摄影机(2.5K,13档动态范围,RAW格式,EF口)】价格_厂家 - 中国供应商...
  10. 公司产品介绍PPT参考