手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇
/1 前言/
上篇文章 手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇我们谈及了天堂网站图片抓取的理论,这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取。
/2 图片网址解析/
1. 我们首先来分析一下这个图片的地址在哪里。我们选择图片,然后右击网页检查,可以看到图片的路径,如下图所示。
2. 将其单独放出来,如下图所示。
3. 可以看到<a href>就是图片的链接,而src就图片的地址,所以我们可以找它的上一级标签<ul>。如果再找不到那就再找上一级以此类推(找到越详细内容更准确)。使用选择器xpath,获取到src的值(网址后缀)之后,将后缀加上“https前缀”就可以得到每一个网址,如下图所示:
4. 之后尝试运行,如下图所示,可以获取到具体的网址。
5. 我们再对这个网址进行请求(参考一个请求的方法)分析数据。
6. 我们以这个鱼的图片为例,点击它来到二级页面。
7. 右键检查 可以看到我们要获取的是src的地址,如下图所示。
8. 获取图片的源码,如下图所示。
9. Xpath 获取到路径,为了方便区分图片的名字,如下图所示。
/3 下载图片/
1. 为方便储存,新建一个filename来作为保存的路径,如下图所示。
2. 也就是说你需要在Python代码的同级目录,提前新建一个文件夹,名叫“天堂网爬的图片”,如果没有这个文件夹的话,将会报下图的错。
3. 使用with函数进行文件的打开和写入,下方代码的含义是创建一个文件,代码框里边有具体的注释。
4. 下面是各个编码代表的含义,可以学习一下。
5. 基于以上代码,基本上就可实现批量下载。接下来,我们继续优化一下。我们导入一个叫fake_useragent的库 fake_useragent第三方库,来实现随机请求头的设置。
6. 我们可以再初始化init方法,添加ua.random,让它随机的产生;其中UserAgent代码如图:(这里设置随机产生50个挑选其中一个进行请求)
7. 最终实现的效果图,终端显示如下图所示。
8. 将图片自动下载到本地后的效果图,高清的噢~
9. 至此,针对解析出来的图片地址予以批量下载的任务已经完成,接下来自己可以开心的去浏览图片啦。
10. 不建议大家爬取太多数据,这样会给服务器增大负载,浅尝辄止即可。
/4 小结/
本文基于理论篇,通过Python 中的爬虫库 requests 、lxml、fake_useragent,带大家进行网页结构的分析以及网页图片地址数据的提取,并且针对解析出来的图片地址予以批量下载,方法行之有效,欢迎大家积极尝试。
如果需要本文源码的话,请在公众号【Python爬虫与数据挖掘】后台回复“高清图片”四个字进行获取,觉得不错,记得给个star噢。
往期精彩文章推荐:
- 手把手用Python教你如何发现隐藏wifi
- 手把手教你用Python做个可视化的“剪刀石头布”小游戏
- 手把手教你使用Python批量创建复工证明 想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/
最新版GDAL源码下载
GDAL全称是 Geospatial Data Abstraction Library,即地理空间数据抽象库,它主要是对栅格影像数据进行读写和投影转换处理,如果需要对GIS矢量数据进行读取和投影转换处理,则需要用到OGR库。
GDAL最初是 Frank由 Warmerdam于1998年开始开发的,在GDAL1.32版本之后,正式由开源空间信息基金会(Open Source Geospatial Foundation,简称 OSGeo)下的项目管理委员会对其进行维护。
GDAL的最新版源码可以在GDAL官方网站下载,也可以通过关注微信公众号“水经注GIS”后,回复“GDAL”获取最新版源码的网盘下载地址。
GDAL几乎是所有GIS产品缺一不可以数据处理引挚,如果说它是GIS的基石也一点不为过,因为很多著名的GIS类产品都使用了GDAL库,包括ArcGIS、GlobalMapper、Erdas、Google Earth和QGIS等。
当然,在水经注的软件产品中也用到了GDAL库,如果你想了解更多使用GDAL的软件和产品,参考GDAL网址https://trac.osgeo.org/gdal/wiki/SoftwareUsingGdal,如下图所示。
GIS软件产品
GDAL几乎支持所有通用的栅格文件格式,常见的包括GeoTIFF、JPG、BMP、PNG和MBTiles等文件。
GDAL目前支持164种格式,参考网址https://gdal.org/drivers/raster/index.html可以了解更多,如下图所示。
GDAL支持的栅格文件格式
同样地,GDAL中的OGR几乎支持对所有通用的矢量文件进行读取和投影转换,常见的文件格式主要包括DWG、DXF、SHP、XLS、CSV、KML、KMZ和OSM等。
到目前为止,GDAL中的OGR库共支持90种矢量文件格式,请参考网址https://gdal.org/drivers/vector/index.html可以了解更多,如下图所示。
OGR支持的矢量文件格式
下载GDAL的源码,可以通过SVN源代码管理工具直接从GDAL的进行下载,它的好处是可以直接看到代码的提交者对代码的修改信息等,但由于它并不是最后发布的版本,可能会存在一些BUG和一些不可预料的问题。
因此要获取GDAL源码的最新版本,我们通常还是建议到GDAL的官方网站进行下载获取,如下图所示。
GDAL源码下载
由于是访问国外网站,如果存在下载速度慢或不成功的情况,你可以通过关注微信公众号“水经注GIS”后,回复“GDAL”获取GDAL最新版源码的网盘下载地址。
简而言之,GDAL是一个在X/MIT许可协议下读写空间数据(包括栅格数据和矢量数据)的开源库,它利用抽象数据模型来表达所支持的各种文件格式,还使用一系列命令行工具来进行数据转换和处理。
OGR (OGR Simple Features Library)是GDAL项目的一个分支,它实现了一个对空间参考信息进行处理的类,用来对空间数据的空间信息进行处理。
最后,如果你在开发工作中遇到与GDAL相关的任何难题,请通过关注公众号“水经注GIS”并在后台留言告诉我们,我们将竭尽所能地为你提供帮助,从而将我们“为用户提供丰富的地图数据与专业的GIS服务”之宗旨落到实处!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。