1. 首页
  2. Python编程

Python爬虫多线程实战:爬取美桌高清壁纸图片

python爬虫多线程实战

需求分析

· 下载

下载 http://www.win4000.com/wallpaper.html 下指定分类 指定尺寸 的图片。

· 保存

本地保存,单个文件夹的形势保存对应图片。

技术点分析

·爬虫requests

· 多线程threading

· 文件io读写操作

· xpath 提取ur

· 正则

实战

·分析url

搞清楚各个url 的关联http://www.win4000.com/wallpaper_205_0_10_1.html

URL中与分类的关系:

wallpaper:桌面壁纸

205 :壁纸分类对应大陆明星

10 :图片尺寸对应1920*1080

分析到这一部,我们知道 ,如果要需要其他类型的壁纸,只需要更改网站分类代码就可以了。

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

·谷歌 charme ,通过右键检查

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

chrame 浏览器右键提示。

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

按图顺序,依次找到对应的html标签。

通过查看,我们发现 中间展示 的图片是由一个ul 标签包裹的 多个Li

我们所要跳转的链接 就在 Li 标签中, 这时就需要使用xpath进行数据的提取。

到此,我们第一层url 的分析就完成了。可以写出以下代码段。

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

此时通过xpath 获到当前页面中的 ul 中所有li 标签了。

那单个明星的跳转链接只需要再次xpath 进行提取就Ok了。

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

完成到这里你的代码运行结果应该如下:是两个列表list。

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

运行结果

准备下载图片

到这,完成第一步,你已经成功获到 每个明星的跳转链接 :

url:http://www.win4000.com/wallpaper_detail_153895.html

再次进行url 的分析:

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

初步分析

通过上图的分析,可以找到这张图,是我们要 1080规格的。但很可惜,一共9张,现在只能找到一张图片的url。

选其中两张图片地址对比:

http://pic1.win4000.com/wallpaper/2018-12-26/5c22eb195abe8.jpg

http://pic1.win4000.com/wallpaper/2018-12-26/5c22eb1c722dc.jpg

好像就是后面文件名不同。如果一张张取是不是很麻烦?

不信你自己去试一下。点再分析一下页面,有个 【查看原图】 选项,点一下试试呢?

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

点击上图出,点完发现了url的变化。

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

再看看有没有惊喜的地方 :

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

上图为url分析。

通过上图的分析 ,我们发现原来这个big页面有我们想要的所有 1080P的图片,而且,全是用ul 包裹,放到单个Li 标签中 。那简单了,用之前的办法 再提取一次,就出来了。代码如下:

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

到这里,我们第一步就完成了一页24个明星图片的地址url的爬取。第二步,完成了单个明星的1080图片地址url的爬取。下一步,我们把图片保存到本地就顺利结束。

图片保存

按需求,要单独到一个文件夹内。那我们就需要在本地路径内 创建对应的文件夹。此处使用 star_img_name 列表中的值。需要使用到i/o读写操作。

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

顺利完成 这个需求:

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

源码展示

代码运行结果若不同,可看一眼源码:

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

运行起来是不是很慢(完善版使用多线程),而且这样看代码,是不是有种:干干巴巴的,麻麻咧咧的,一点都不圆润,盘他!!

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

完善版是可以完成可选分类,可选规格 ,多线程版。希望这个小实战案例可以帮到大家。

Python爬虫多线程实战:爬取美桌高清壁纸图片

文章声明:发布者:栈长,转转请注明出处,谢谢!

发表评论

登录后才能评论
QR code