Go语言学习记录——知乎图片爬虫工具

Q1:为什么是Go语言?

因为网上别的语言的爬虫有很多,而最近学习go语言,发现go语言的爬虫非常少,或者说现成的爬虫框架特别难懂,于是想要记录一下爬虫学习的过程。

Q2:为什么是爬知乎的图片叻?

因为本人没事就爱刷知乎,以小时为单位起刷,所以就想以知乎入手,学习学习,写一篇文章叻就想记录一下学习过程。

话不多说,开始接受

爬虫,个人认为就是将想要的数据批量的下载下来,经过过滤筛选,得到最后自己想要的,废话不多说,上图!

在这里插入图片描述
由于本人是一个酷爱表情包的人,也喜欢时不时的更新一下,那么这个程序就可以帮助我批量下载啦,短时间就能下载1万多张,有没有很方便!剩去去各大app上搜刮表情包的步骤啦。

那么,我就开始简单讲述一下爬虫图片的步骤和原理啦,想要表(钓)情(鱼)包(图)的朋友可以直接翻到底。

首先,相关的知识点牵扯到

url

cookie

正则表达式

那么就来了解一下这都是些啥,

url全称是Uniform Resoure Locator,翻译过来就是“统一资源定位符,简单来说就是确定你想要的数据到底存在什么地方,我们在浏览器看到的内容都是通过网络传输,将数据发送到你的电脑上,由浏览器解析出来的,那么url就是确定你想要的东西存在什么地方的一个标志,比如,一个plmm的图片存在b站的每一个服务器的每一个文件夹底下,你就是通过url去获取那张照片or视频or别的数据。

cookie指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据,简单来说就是辨别你的身份的东西,让服务器知道是以登录的状态访问的,例如知乎,没有登录后的cookie的话,你是看不到全部的回答的,因此爬虫想法都是白搭。

正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。简单来说,对于浏览器访问而言,你看到的是渲染好的图片,看上去赏心悦目,而对于程序而言,你得到的是源代码,看效果可以鼠标右键空白处,(查看网页源代码)因此,得到的数据是杂乱无章的,你需要从中找的规律,把你想要的数据找出来,而找图片,就用到了正则表达式,因为知乎的用户回答的图片的格式是统一的,都是( https:// )开头(.jpg)结尾的,于是需要用到正则表达式从杂乱无章的文本中,将他们找出来。

OK,讲完相关概念就说说爬虫的步骤吧,
知乎的回答都是有问题号的,比如:
在这里插入图片描述
317520471就是问题的编号,然后对于不同的问题,只要修改编号就可以做到适用了。

首先,拼接上url (… + 问题编号)

以上图问题为例 url就是https://www.zhihu.com/question/317520471

发送请求(发送请求,得到相应应该是关心爬虫问题的小伙伴默认已经会了的知识,如果不知道,查一查http的原理)

得到网页的源代码,在通过分享代码中的图片地址,如:src=“https://pic4.zhimg.com/80/v2-dbd892ffea9711b0940d977d88a82360_hd.jpg”

源代码中会有类似的关键字符串,再发送请求就能下载下来啦,然后以此类推,就能将问题的所用回答中的图片全部下载下来啦。

Tips:当然在我的实践中,遇到了种种问题,最难搞的就是懒加载的问题,就是无法一次性得到所有的网页源代码,为什么会有这样的机制呢,就好比一个问题有几千个回答,知乎服务器没有必要将所有的答案一次性全发给你,发给你你可能也不会看那么多,于是就有了懒加载,获取用户的鼠标操作,快看完的时候动态的给你发新的答案。

那么懒加载可以通过知乎的api解决,达到模拟翻页的效果,感兴趣同学可以查一下知乎api/v4

也可以和我探讨一下


最后的最后,祝大家身体健康,探索技术的道路上,身体是第一位的!

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值