8.C++爬虫开发指南:实战图片下载

1.前言

项目演示可以直接查看视频:cpp爬虫项目演示

经过前面两章对基础知识的再学习,我们其实就已经有了开发更高级项目的能力,所以本文就将详解一个爬虫的制作流程,尽量稳固一下前面章节所学的知识点。

爬虫大家应该都不陌生,基本可以说是python的专属领域,C/C++写爬虫怎么没听说过?

那确实是的,因为python方便简洁,有大量的爬虫库可以直接让你调用,但C/C++可就没这么好了,基本没有现成的爬虫库让我们调用。

所以用C/C++写爬虫的缺点很明显,那就是非常消耗我们的时间。

但优点也显而易见,可以帮助我们稳固基础,因为是我们自己写爬虫的底层过程。

2.爬虫介绍

上面谈了这么多,可能一些同学还并不知道爬虫到底是个什么东西。

所谓爬虫只是形象之称,本质也只是一个程序而已。

当你用浏览器看到本页内容时,在本页内容中是不是还能许多可以跳转到其它页面的链接或者按钮?

当你点击这些链接或者按钮后,页面就会跳转到其它页面,这说明不同的页面之间都是相互关联的。

这些页面之间的联系就可以形象的看作一个网,而我们的程序就是利用了这张网,在各个页面之间游走,寻找自己所需要的资源,就很像在这张网上的虫一样,所以就称为爬虫。

上面的解释比较形象,大家应该是能够理解的,只是可能不知道的我们现在应该如何控制我们的程序在这张网上游走以及爬取数据罢了。

不过我既然将本文放在这里,就说明大家目前是已经有能力写出爬虫的,所以不用担心!

3.前置准备

在正式写代码前,我们还需要理解一下网页,以及本次爬取目标的分析过程。

前面我说过,程序员写的代码,需要通过编译器编译生成可执行文件,最后才能运行。

对于拿到.exe可执行文件的我们来说,是无法看到程序员所写的源代码的。

但对于网页来说不一样,网页是运行于浏览器上的,换句话来说,网页的源代码是给浏览器看的,而现在浏览器就在我们的电脑上,网页源代码不可能是提前放到浏览器里面的吧?

对的,网页源代码,是我们通过网络下载到我们的电脑上,然后交给浏览器解析,最后呈现出我们所看到的网页。

那么下一个问题就是,我们应该如何找到网页源代码?

其实非常简单,直接点击F12即可,可能需要先点击功能键Fn进行启用:

image-20231202191955347

然后我们就可以将源代码全选,复制下来,然后粘贴到记事本中:

image-20231202192153697

保存,将后缀名改为.html

image-20231202192307724

然后双击它,浏览器就会将其打开:

image-20231202192243728

此时我们就可以看到已经打开了这个网页,上面浏览器中的文件路径也为本地桌面文件的路径。

只不过由于本站用的是nuxt框架开发之后进行的编译,这样保存下来然后运行是很难看的,这个方面的内容大家如果有兴趣的话,可以参考本站前端相关的教程。

暂时看不懂网页源码也不用担心,相比于C/C++,这些都是相当简单的东西,我们只要会抓取关键信息即可!

有了源码,我们自然也就可以为所欲为了,比如图片以及各种数据,我们都能拿到手!

这次的目标网站是一个图片网站,试着爬取该网站上的图片:

http://www.netbian.com/

主页长下面这样:

image-20231202192719567

先看一看该网页的源码,这次看点不一样的,点击F12,点击元素窗口:

image-20231202192814905

其实这也是源代码,只是浏览器帮我们将源码整理了一下,更好看而已。

但只是这么看,也看不出什么来,所以我又用到了另一个工具,选择元素的工具:

image-20231202192938980

先点击控制台左上角,就可以选择你想要观察的任何一个元素,比如上图中的一张图片,点击它。

然后控制台元素窗口中就会自动给你找到这张图片的源代码是哪一段。

而且这段代码还特别整齐,当你试着用鼠标移动到这些代码上的时候,你会发现网页中的其它图片也标亮了:

image-20231202193046148

这说明这些项 <li> 内容</li> 里面都包含了图片的源代码,结合我们目前看到的这个:

<li>
作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux