写在前面的话:作为一名技术人,就是要不断的去探索。希望我的学习之路会带给你一些帮助。
本文主要介绍了笔者对爬虫的基本理解,以及在正式学习了解爬虫之前,必须要掌握的一些基本知识,如果你对这些不了解,那在后续爬虫的学习过程中真的是寸步难行。
爬虫到底是什么
我并不是一名专职的爬虫开发工程师,截止 2020年12月12日,主要从事的方向是 python 开发,爬虫只是作为一个感兴趣的方向去研究,顺手帮公司做了几个不大不小的爬虫项目。不过还是本着开源精神,还是想把我的一些学习经历和总结过程以及痛点都分享出来。
爬虫在百度的解释是:
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
好吧,我也不懂。
事实上,在我的理解,爬虫就是用代码的方式去拿我们要的数据和信息,就这么简单。
其实爬虫真的很简单!!!
假设你对 python 有一定的了解,再不济也得看得懂 python 代码!!!
不然我建议还是先去学一下 python 语法,很多开源的网站都有教程,不要花钱去上啥子各种培训班~
就比如这个:https://www.w3cschool.cn/position/kqc20f.html
还有这个:http://www.pythondoc.com/pythontutorial3/index.html
and: https://www.liaoxuefeng.com/wiki/1016959663602400/1016959735620448
NOW
一些必须要了解的内容:从我个人而言,分析一个问题或者说学习一门新技术的时候我喜欢搞清楚它的来龙去脉以及是什么,为什么,怎样做,从这三个角度来入手。
是什么的问题我已经解答过啦,为什么这样做~工作,学习,爱好,无聊,还是想找个小姐姐的图片,,,反正就是找个借口,哪有那么多为什么,哈哈~
那到底怎样做呢?
首先
你得了解网页的构成。大学里会有课程做专门的介绍,或者网上有各种资料介绍网页巴拉巴拉一大堆,所以我在这里呢只做简单的叙述呢。
分析一下,我们是如何访问百度的。
在地址栏中输入 https://image.so.com/
, 好吧,这个并不是百度,我也不想我写技术文章的时候太无聊,哈哈。
然后它就出现了
咦~发生了什么?
在这里我推荐大家看一部央视纪录片,《互联网时代》,完美的解释了互联网的发展路程。
OK ,fine
**基本流程:**
①查询ip地址
②建立tcp连接,接入服务器
③浏览器发起http请求
④服务器后台操作并做出http响应
⑤网页的解析与渲染
好吧,这个没学过计算机网络的呢,理解起来是有点烦,so,用我自己的话来讲:
输入 url,匹配到服务端唯一的公网ip,然后服务端就会返回给你相关的信息,然后浏览器解析与渲染到页面,我们就看到了。
在这里有几个关键的技术需要了解一下:
HTML/CSS/JavaScript
可以参考 w3c 教程做简单了解:
https://www.w3school.com.cn/html/index.asp
然后
还是用我自己的话来讲:
HTML 是一种超文本标记语言,本质上就是定义了一堆的标签,在标签里写各种内容,而这些个标签呢,就像 word 中,有标题,段落,链接。。。所以不要想的那么复杂啦,就知道他是一堆标签组成的文本就好了。
CSS 则是服务于 HTML,你想呀,在 word 中你定义了段落,但是行间距,字体大小,文本颜色等怎么来的,是不是需要我们自己点点点去设置,CSS 就是做的这个功能,我称他为上色!哈哈,就是设置各种各样的样式的一门语言(或者不能称之为语言~)。
有了 HTML 和 CSS ,你就可以写出一个网页来啦,但是你会发现网页是静态的,没有任何的动态效果,比如网页的跳转。
JavaScript 则是为了
嵌入动态文本于HTML页面。
对浏览器事件做出响应。
读写HTML元素。
在数据被提交到服务器之前验证数据。
检测访客的浏览器信息。
控制cookies,包括创建和修改等。
基于Node.js技术进行服务器端编程。
以上内容来自百度!!!
好吧,我又不做前端开发,我才不要学这些呢!我只需要知道这个是服务于 HTML ,为了实现网页动态效果,重点是登陆验证会用到它,与服务端进行交互的时候会用到他,以及session和cookie的存储会用到它,还有数据的渲染需要用到它,这就够了,嗯,够学习爬虫了~哈哈!
这里涉及到爬虫的知识 比如 与服务端进行交互,session ,cookie等内容在以后的博文中都会涉及到,我会尽量以自己的方式用最通俗的话语把这些内容表达清楚~
那到底什么是爬虫
一个正式一点的解释是:通过代码提取并保存信息。
爬虫首先要做的工作就是获取网页,也就是获取网页的源代码。
以 chrome 浏览器为例,在网页空白处右单击,选择检查,在 tab 栏选择 elements,就会看到网页源代码。如下图所示:
如图所示,可以看得到网页的源码,还可以看到所用的 css 样式,甚至还可以分析网页的 js 逻辑。
那么到这里,你应该也差不多知道了,爬虫就是要拿到网页的源码(当然并不仅仅是这么简单,以为爬虫就是这么简单嘛?想什么呢!!!)
不过小北觉得,万事都要有个过程,都要循序渐进,谁都不能一口吃成一个胖子,学习更是这样。我希望带着大家养成一个学习的思维,而不仅仅是学会。
技术总结
了解:意味着你最起码要知道他是什么,以及能看懂简单的示例。
- 了解网页的基本组成
- 了解 HTML 的构成,DOM 树到底是个什么玩意
- 了解 CSS 样式表
- 了解 JavaScript 的功能以及基础的语法
- 了解 Python 基础
- 对爬虫有个基本概念
每个人都有自己的思维和学习方式,我写文章不单单是为了帮助大家入门爬虫,而是想通过爬虫带着大家了解目前这个行业的相关内容。发现痛点,然后解决痛点,这才是一个技术人的成长之路。