终于,我用Python爬虫批量保存了P站的靓图 |
您所在的位置:网站首页 › 怎么下载p站动图的视频 › 终于,我用Python爬虫批量保存了P站的靓图 |
今天我决定爬虫下 P站的图片,我们首先打开网站研究下。 不好意思,手抖打错了,应该是下面这个网站。 众所周知,插图网站 pixiv 别名叫 P站,所以今天我用爬虫批量保存二次元P站的靓图。 P站主要分为四个模块,插画、动图、漫画、小说,小说和漫画都是日文,看不懂,所以今天的目标就是插画和动图了。 今天就以插画为例,进入插画模块,我们先找到怎么下载单张插画的图片的方法,我们打开 F12 进入 Network,发现这个页面会返回每个插画的 id。 点击单个插画进入到插画具体页面,看到网址就是上一个网页的 id 拼接而成的。 我们打开详情页的源代码,在 link 标签里有个 href 链接,我们点击进入。 进来之后我们发现里面都是关于这张插画图片的详情信息,包括插画标题、插画高度和宽度等,url 应该就是插画的可下载链接了。 我们点击 url 链接,果然,在新窗口中直接打开了图片,这就表示这就是我们要找的插画图片的下载链接了。 我们接下来看看这个可下载插画 url 链接的规律,我们在插画模块打开第二张插画,和刚才一样的步骤,查看它的可下载链接。 简单对比,我们就可以看出来,这两个链接除了id不一样,其他链接不变,而 id 就是插画列表页面返回的 id,这个就简单了。 单张图片爬虫下载我们把 id 提取出来,我们先来下载一张图片,如果你一张图片用爬虫下载成功了,那你就成功了一半了,剩下的工作就是写个循环去批量下载就行。 我们在看下接口返回的 json 值,发现 illust_id 在 contents 下。 每次动态加载后返回 50 张图的 illust_id,我们现在只下载一张图,就直接返回第一张图的 illust_id 好了。 然后,我们需要写一个下载图片的方法,保存在指定的目录下,文件名用 illust_id,图片链接前面也分析过了,除了 illust_id,其他都是相同的,我们简单做下拼接就可以完成下载了。 这样第一张图片就成功的下载好了。 批量靓图下载上面单张图片下载搞定了,接下来就是批量了。 第一个批量的地方是插画列表页面超过50张图,再下滑时,会产生接口返回新的数据,接口的请求除了页码 p 不同,其他都是一样。 下滑到最底部,Headers 下面请求的 p 最大值是 10,那我们把 p 值当成参数,在 1 到 10 里循环就好了。 第二个批量的地方是 illust_id 获取那里,刚才下载一张的时候我们直接写成 0,50个的话我们写个循环就好了。 上面图中 i 每次加 1 都会返回一个 illust_id,我们用一个把返回的 50 个 illust_id 全部添加到 illust_ids 的空列表中,下载时从 illust_ids 循环获取 illust_id 实现批量下载。 反爬措施对于短时间批量下载,很容易被反爬,被封ip导致段时间内无法再继续爬取。 反爬措施主要有以下 3 种。 加等待时间我们可以在批量请求接口之间加入随机等待时间,因为封 ip 一般都是根据在规定时间内你的请求达到了它规定的阈值,所以我们可以加个随机等待时间来控制下爬取的频率。 但是这个随机等待的时间也不好控制,等待时间太短的话可能效果也不明显,太长的话就会延长爬取的时间。 随机UAUser Agent 也是网站判断你的请求是不是正常的浏览器请求行为,如果你的爬虫里没有这个参数,那网站第一时间就认定了你是个爬虫,被封就是分分钟的事情了,如果你的 UA 一直不变的话,那多请求几次后,那就会被识别了,所以我们需要多弄几个 UA,每次请求的时候随机从这几个 UA 去获取。 代理ip池最保险的就是自己建立一个代理 ip 池了,代理 ip 也有免费和付费的,免费的可用率不高,需要自己爬取下来后检查下再用,每次爬取随机选择一个可用的代理 ip,这样可以极大的降低被封 ip 的风险。这个下次再写篇文章专门讲讲怎么搭建自己的代理 ip 池。 好了,以上步骤基本上是爬虫的基本步骤了,除了本文的爬 P站图片,爬取其他网站的图片步骤基本也是这个思路了。 最后,这些图片用于自己欣赏和做壁纸没问题,用于视频封面和素材或者文章的封面需要注意下图片是否有版权。 代码中 headers 信息记得替换成自己的再运行代码。 这些信息也不用一个个手动输,之前文章讲过的 curl 转换神器(https://curl.trillworks.com/),可以一键生成这些参数。 如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油! 😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓 1️⃣零基础入门 ① 学习路线对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。 ② 路线对应学习视频还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~ ③练习题每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈! 2️⃣国内外Python书籍、文档 ① 文档和书籍资料 3️⃣Python工具包+项目源码合集 ①Python工具包学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦! ②Python实战案例光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿! ③Python小游戏源码如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味! 4️⃣Python面试题我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |