⚡离谱!!!自定义分辨率图片爬虫你可见过???(文末有投票)


✨前言

本次博主以爬取电脑壁纸为例,大家仔细看过这篇博文后,都能够照着套出来,爬取自己想爬取的壁纸。

纵览整篇文章,可能有的小伙伴看完后会觉得简单,但是我想告诉各位的是,爬虫之路需一步一脚印,通过爬取各种网站,来达到锻炼思路的目的,如果之后有想要进军JS解密等高阶爬虫的小伙伴,一定要有灵活的思路,我的话到此结束,接下来进行爬虫讲解!!!

在这里插入图片描述


🌝一、网页分析

进入ZOL壁纸网站

【桌面壁纸】电脑桌面壁纸大全_高清壁纸-ZOL桌面壁纸

image-20210821221628841

点击电脑壁纸

在这里插入图片描述

滑动到底部,可见有多页,那么有需求的小伙伴可以进行多页爬取

image-20210821221713447

点击不同页,查看浏览器地址栏URL,即可得到规律,需要进行多页爬取的拼接URL即可

image-20210821221831971


本文重点:自定义分辨率爬取

随便点一个进去,展示如下页面

可以发现,下面有一行分辨率可选择查看,那我们先点击,1920×1080

image-20210821222612347

下图为:1920×1080

image-20210821222731925

图片保存下来一看,也确实是1920×1080

image-20210821222859206

那么,如何做到自定义分辨率呢???

关键就在于浏览器地址栏的URL

很明显,URL中带有我们需要的分辨率1920×1080

https://desk.zol.com.cn/showpic/1920x1080_117173_34.html

下面我们点击 600x9002880x1800 的图片

# 1600x900 图片的URL
https://desk.zol.com.cn/showpic/1600x900_117173_34.html 

# 2880x1800 图片的URL
https://desk.zol.com.cn/showpic/2880x1800_117173_34.html

但是这都是人家提供给我们的分辨率,那我们如果做到自定义呢???

这就是我说的,搞爬虫的思路一定要灵活,绝对不能死板,不然走不了多远的,一定要勇于尝试!!!

答案就是,我们可以在URL代替他给的分辨率,替换成我们自己想要的不就得了!😉

这是它给的

image-20210821223540724

**这是我们自定义的 1000×1000 **

image-20210821230134520

**保存下来也确实是 1000×1000 **

image-20210821230218279

但这还没完呢!!!

URL中除了分辨率之外,还有什么117173和34什么的数字,这也是关键!

https://desk.zol.com.cn/showpic/1600x900_117173_34.html 

**可见图片对应的标签中的href属性中有着我们熟悉的 117173之类的数字,但是就上面的分析而言,34是怎么来的呢? **

image-20210821230457344

**我们看他提供的分辨率按钮代码,可见我们需要的 117173_34 **

image-20210821230711651

那可能有的小伙伴就说了,既然可以在这里获得我们需要的,那你还分析之前的干啥

我们点一下张图片可见,117173变成了117171,但是34还是一样的,那么经过我的测试可得出结论:后面的数字相当于一组图片的唯一id,是不会变的,变的是每个图片的id,那么我们对于唯一id只需要获取一次即可,之后图片的URL可经过拼接得到!

image-20210821230858898

但是拼接后得到的URL虽能看到图片,但其实这是一个静态网页

**看到源码,下面 img标签中的 src 属性才是图片真正的URL **

image-20210821231214971

分析到此结束,具体看源码注释


细节问题

image-20210821221953510

赋值打印的html到html文件中,发现

image-20210821222457618

这是一个网页编码问题,确实是一个常见问题

查看网页编码

  1. 方式一
    在这里插入图片描述

  2. 可见网页编码为GBK
    在这里插入图片描述

  3. 方式二

    image-20210821221448211

    虽然两种方式得到的编码不一样,但都能解决问题

所以我们爬取的时候要记得设置编码


✨成品展示

在这里插入图片描述

关注后,私信我获取源码,不然回复不了你

🔥投票



😘尾言

我是 Code皮皮虾,未来的日子里会不断更新出对大家有益的博文,期待大家的关注!!!

创作不易,如果这篇博文对各位有帮助,希望各位小伙伴可以点赞和关注我哦,感谢支持,我们下次再见~~~

分享大纲

大厂面试题专栏


Java从入门到入坟学习路线目录索引


开源爬虫实例教程目录索引

更多精彩内容分享,请点击 Hello World (●’◡’●)


在这里插入图片描述

  • 56
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 62
    评论
根据引用中提到的节点钩子(node-hooks-events)的相关信息和使用方法,以及引用中提到的非常离谱的错误,我可以推断出npm ERR! node:events:505是一个与节点事件(node events)相关的错误。 通常,当使用某些npm包或库时,会遇到与节点事件相关的错误,这可能是因为您的项目依赖的某个npm包无法正确地使用或解析节点事件。这可能是由于包的版本不兼容或包之间的冲突导致的。 为了解决这个问题,您可以尝试以下几个步骤: 1. 确保您的项目中安装了正确版本的节点事件包(node events package)。您可以通过运行npm install node:events命令来安装它。 2. 检查您的项目的依赖项,并确保没有冲突或版本不兼容的包。 3. 如果可能的话,尝试更新您项目中使用的npm包的版本,以解决可能存在的冲突或兼容性问题。 4. 如果问题仍然存在,您可以尝试搜索类似的问题和解决方案,或者与社区或包的开发者进行联系以获得更详细的帮助。 请注意,这只是一种可能的解决方案,并不保证一定能解决问题。具体解决方法可能因您的项目和环境而有所不同。建议您在尝试任何更改之前备份您的项目,以防止意外情况的发生。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [node-hooks-events:http的节点包装器](https://download.csdn.net/download/weixin_42149153/20257066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [启动node服务器时报错](https://blog.csdn.net/qq_64607072/article/details/125999440)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [React项目创建报错解决方案npm ERR!... path E:\Node1\untitled5\node_modules\fibers npm ERR! command](https://blog.csdn.net/m0_56649557/article/details/119895647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 62
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值