前言:
我目前主要学习方向是c++,看到网上基本上都是用python写的爬虫,我也试过,确实非常方便,几行代码就能解决,但却就是因为python封装的太好,过于简单,使得很多人包括我最开始的时候,都很难理解爬虫原理.所以就想着能不能用c++实现一个简单的爬虫.
最后我成功实现C++版爬虫从某图片网站爬取了将近两万多张图片,便记录一下,供大家学习
有兴趣的同学可直接下载源码对比学习,下载源码点这里
5月17日更新:
也可进入我的公众号,查看升级优化版爬虫代码文章,以及完整的代码,还有持续更新的资源!
文章目录
一、先手动爬虫,理解爬虫原理
首先我们得清楚网页的原理,如一页展示图片的网页,右键可查看网页源代码
(考虑到该程序的特殊性,避免不必要的麻烦,不方便展示该网站名称,大家可自行找图片网站替代,尽量与本文的网站格式相近)
(当然也可以下载我的源代码,里面有详细的注释,VS2019环境下亲测可用)
网页源代码如图:
为方便演示爬虫原理,可在源代码页Ctrl+A 全选 ,再Ctrl+C复制,然后在桌面新建一个txt文本,Ctrl+V复制结果如图:
然后保存退出,修改文件后缀名为.html
修改前:
修改后:
然后直接点击该文件,可以发现显示出与先前网站一样内容的网页,只是显示样式发生了变化.
至此,我们就完成了一次手动爬取一张网页
而此次我们想爬取的不是网页,而是网页上展示的图片,所以这还不够
二、尝试手动爬取图片
正如上所诉,图片是在网页上展示的,所以我们就要尝试在网页上找到图片的地址
在网页源代码中,可以很容易找到以<img src="…"形式展示的标签
如图:
当尝试点击img 后紧跟的链接时,发现展示出一张图片,就是先前网页上看到的某张图片