爬虫开发前导知识
前言
随着互联网行业被越来越多的人所熟知,高额的月薪收入,使得一批又一批的青年才俊投身于编程的学习。但是,真正能够学好的,或者是进入互联网开发的人并不多。那么这里面究其原因是什么呢?是我们不够努力?还是自己不适合编程?等等问题相信困惑着每一位莘莘学子。 那么基于这个原因,想站在学习者的角度,企业级的角度来帮助大家真正掌握一门互联网编程的技术。只有学习的方式方法对了,我们才能真正的站在巨人的肩膀上。
今后我会更新一个系列的文章是有关于Python爬虫企业级开发技术。希望能够对大家在学习爬虫的道路上提供一些参考和借鉴。学习爬虫,第一件事情,我们先不必纠结于什么是爬虫?爬虫能做什么等等?在日常生活中,我们经常会上网,那么上网也是需要一些基本的网络知识,大家可以通过这个章节来检查一下自己是否能够轻松理解,这些知识点的内容,如果不行的话,现在放弃还来得及,起码没有把大量的时间浪费在学习编程的路上。
网络知识
端口
第一个概念是端口,端口或者是端口号相信大家都听过。那么这个端口究竟指的是什么呢?假如我们有如下一个场景,我想通过QQ给XXX人发送一张图片,我该如何去做呢?其实很简单,第一步,我先要找到这个人的QQ(那么在这里我们也可以理解为对方主机的IP)。第二步,我就是要把数据发送到对方的指定应用程序上
那么问题来了,我的数据为什么没有发送到XXX人的微信上呢?当然有人会想到,QQ不会识别微信,它只认识QQ,那么为什么我的QQ能够识别QQ呢。这个问题的初衷就是咱们的端口。也就是数据要发送到对方指定的应用程序上。为了标识这些应用程序。所以给这些网络应用程序都用数字进行了标识。为了方便称呼这些数字,叫做端口或者端口号 比较常见的端口号有例如mysql端口号3306,tomcat端口号8080等。
通讯协议
端口明白了之后,就是通讯协议了。通讯协议怎么理解呢?就好比两个谈恋爱的情侣马上要结婚了,那么我们可以指定一个婚后协议,是双方都有遵守的。其实这个网络协议也是这个道理。 所谓网络协议就是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则
那么我们玩爬虫需要关注的协议是http和https协议
- HTTP,又叫做超文本传输协议(是一种通信协议) HTTP 它的端口是 80
- hTTPS,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。HTTPS它的端口是443. 这里面需要注意的是,无论是HTTP或者是HTTPS。同学们打开一个网站的时候都有可能并没有发现它的端口号。例如:www.baidu.com/ 又或者 www.quanshuwang.com/ 这是因为,HTTP协议和HTTPS协议已经被广大用户所接收了,它的应用范围太广,所以这个端口号就默认省略了。
HTTP请求与响应
这个非常好理解。就好比我们要登录自己的QQ。那么首先会输入一个账号和密码然后点击登录。其实这个行为动作就是在像腾讯的服务器发送请求。当腾讯的服务器收到了这个请求的时候,它会做系列的复杂判断,例如你的账号和密码是否在数据库中,是否正确等等,在这里我们就不做详细的研究了。这些复杂逻辑做完之后。服务器会给我们的QQ客户端发送一个响应,然后我们就正常的登录成功了。 当然网页也是一样的道理,我们在浏览器中输入一个网址,就是在像其服务器发送请求,然后服务器收到请求之后给我们做出响应。如果这个网址是正确的我们就可以看到这个网页了,如果网址不正确可能给我们一些其他的响应,例如404、500等等。 通过一幅图我们可以总结一下
- 当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。
- 当我们在浏览器输入URL www.baidu.com 的时候,浏览器发送一个Request请求去获取 www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。
- 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件
- 当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。
爬虫开发前导知识先更新到这里,后续会继续更新这一部分相关的内容。对于零基础想学习爬虫开发的同学,可以持续关注。有什么疑问也可以在评论区告诉我。 随风起舞,率性而为,用代码演绎编程江湖