天天看点

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

Python,可以帮忙抢票,可以爬虫东西,关于Python爬虫怎么做?今天教大家一个案例,python爬虫多线程实战:爬取美桌1080p壁纸图片

技术点分析

·

爬虫requests

·

多线程threading

·

文件io读写操作

·

xpath 提取ur

·

正则

实战

· 分析url

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

URL中与分类的关系:

wallpaper : 桌面壁纸

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

10 :图片尺寸对应1920*1080

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...
· 谷歌 charme ,通过右键检查
.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

chrame 浏览器右键提示。

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

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

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

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...
.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...
.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

运行结果

准备下载图片

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

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

再次进行url 的分析:

.net后台怎么提取html中的多个图片的绝对地址_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

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

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

上图为url分析。

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...
.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

图片保存

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...
.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

顺利完成 这个需求:

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

源码展示

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...
.net后台怎么提取html中的多个图片的绝对地址_python爬虫多线程实战:爬取美桌1080p壁纸图片...

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

记得点赞关注哦,老子爱你们。

继续阅读