老铁们,还记得 PowerShell 吗?
背景
头吃午饭的时候,同事突然发了个链接过来,问我能不能把这个网站上的图片一把搂下来(ps.均为开放资源,不涉及盗版,隐私等敏感问题)。
我看了下总共也就 400 来张图片,想着要是人工在下的话可能比写爬虫还要快,就跟她这么回了一下。
回完了,我突然想到了一位老朋友——powershell,想着,如果用 powershell 的话,可能也就几行代码就完全搞定了,也不用配环境什么的,即用即走(仅限 Windows 系统)。
那就来试试吧
思路
首先,这个网站上的图片也不是一把都加载出来的,涉及到了分页。
我在 postman 上试了一下,分页的接口也是公开的,那就简单了啊!我这里想到了 2 条方案,
第一条是边请求数据,边下载,也就是,请求一页数据,然后提取图片路径属性,最后执行下载,循环到下载结束。
第二条是,我先把所有的分页数据下载到本地的 json 文件里,这样数据源就是本地的文件 json 文件,然后读取 json 文件,逐条获取图片地址进行下载。
第二种方案,等于是把整理文件和下载文件的流程分开了,最后决定用第二种方案。
下载分页数据
powshell 的请求方法其实非常简单,而实际的案例却并不具备参考价值,因为对于爬虫类应用或者脚本来说,你的目标网站往往都是不一致的,适用于我的请求代码,大概率是不适用你的,终归还是要人工参与微调。
因为涉及到目标网站的信息,我这里就不贴我的获取数据脚本了,贴一个测试脚本过来,大家可以根据实际需求来修改
读取 json 文件下载图片
整理好后,就可以读取文件,并执行下载了,这一步也没啥好说的,我这里也直接贴几段代码得了。
执行起来之后,下载的效果就是这样
然后,就等着它慢慢下载完成就好了。
如果下载量大,还需要注意下载间隔,可能还要考虑自动更换代理 ip,这些就不再本篇的讨论范畴啦
总结
其实这部分的代码是最不重要的,主要还是给 Windows 的开发者在提个醒,咱系统自带的 powrshell 也是一个非常简洁,高效的开发工具,在面对一些简单,重复性的工作时,可以考虑一下它,非常方便!
如果你不记得 powershell 的语法,就目前来说,这真的完全不是事儿!为啥?因为有大模型!不论是 chatgpt 还是国内的文心一言等,都可以很快速的生成出 powershell 的范例代码,我们只需要简单修改就可以了啊!非常的丝滑~
好了,就这样吧
版权声明: 本文为 InfoQ 作者【为自己带盐】的原创文章。
原文链接:【http://xie.infoq.cn/article/636c70a69ec4e1285304408c2】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论