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
分析到这一部,我们知道 ,如果要需要其他类型的壁纸,只需要更改网站分类代码就可以了。
· 谷歌 charme ,通过右键检查chrame 浏览器右键提示。
按图顺序,依次找到对应的html标签。
通过查看,我们发现 中间展示 的图片是由一个ul 标签包裹的 多个Li
我们所要跳转的链接 就在 Li 标签中, 这时就需要使用xpath进行数据的提取。
到此,我们第一层url 的分析就完成了。可以写出以下代码段。
此时通过xpath 获到当前页面中的 ul 中所有li 标签了。
那单个明星的跳转链接只需要再次xpath 进行提取就Ok了。
完成到这里你的代码运行结果应该如下:是两个列表list。
运行结果
准备下载图片
到这,完成第一步,你已经成功获到 每个明星的跳转链接 :
url: http://win4000.com/wallpaper_detail_153895.html
再次进行url 的分析:
初步分析
通过上图的分析,可以找到这张图,是我们要 1080规格的。但很可惜,一共9张,现在只能找到一张图片的url。
选其中两张图片地址对比:
http://pic1.win4000.com/wallpaper/2018-12-26/5c22eb195abe8.jpg
http://pic1.win4000.com/wallpaper/2018-12-26/5c22eb1c722dc.jpg
好像就是后面文件名不同。如果一张张取是不是很麻烦?
不信你自己去试一下。点再分析一下页面,有个 【查看原图】 选项,点一下试试呢?
点击上图出,点完发现了url的变化。
再看看有没有惊喜的地方 :
上图为url分析。
通过上图的分析 ,我们发现原来这个big页面有我们想要的所有 1080P的图片,而且,全是用ul 包裹,放到单个Li 标签中 。那简单了,用之前的办法 再提取一次,就出来了。代码如下:
到这里,我们第一步就完成了一页24个明星图片的地址url的爬取。第二步,完成了单个明星的1080图片地址url的爬取。下一步,我们把图片保存到本地就顺利结束。
图片保存
按需求,要单独到一个文件夹内。那我们就需要在本地路径内 创建对应的文件夹。此处使用 star_img_name 列表中的值。需要使用到i/o读写操作。
顺利完成 这个需求:
源码展示
代码运行结果若不同,可看一眼源码:
运行起来是不是很慢(完善版使用多线程),而且这样看代码,是不是有种:干干巴巴的,麻麻咧咧的,一点都不圆润,盘他!!
完善版是可以完成可选分类,可选规格 ,多线程版。希望这个小实战案例可以帮到大家。
记得点赞关注哦,老子爱你们。