网络爬虫的目的通常是获取某个网页的特定信息(例如百度文库的文章、股票数据、天气数据等),这就涉及到网络的连接过程了,本文将极其简单抽象地讲解爬虫涉及到的网络通信国过程,以及一些常用的术语。
额,仍然还没有开始写代码。如已了解本篇芝士,阔以直接跳至下一节教程。
从零开始的网络通信
假如你想与A取得联系,要zha办嘞?
如果使用的是近代的电话系统,那么你需要拨至接线生,让接线生接A的线路
这个过程和现代的网络通信非常相似
网络通信中表示ABC使用的是IP地址、MAC地址
本机的IP地址可以在百度里搜索IP查到,如下图:
上网的过程实际上就是不同IP地址间数据传输的过程,比如上百度、上qq,实际上就是与百度、qq的服务器通信的过程
服务器
其实也是一台电脑,主要是为其他电脑提供服务(登qq、网盘、邮件、搜索等),绝大多数为24小时运行
其内部运行有一个服务器程序,对传入的数据进行处理,并传回响应的数据
DNS
但是,我们上网的时候,并不需要记百度的IP地址才能上百度啊
而是通过访问网址http://baidu.com
网址中包含域名,下文将详细介绍网址的结构,可先粗略将其与域名等价
前文说到数据传输都是通过IP地址,所以,网址与IP地址间还存在一个转换的机制
这个转换的机制一般就是通过DNS服务器实现,DNS全称Domain Name System(域名系统)(域名解析)
DNS服务器一般有固定的IP地址,例如:8.8.8.8、8.8.4.4、114.114.114.114等
一般联网时便会从路由器得到一个DNS服务器地址,用于对网址中域名的解析
浏览器将域名发送给DNS服务器收到IP地址,再直接与IP地址进行通信
可以看出,DNS服务器与电话系统中的接线生十分相似,都是作为一个中介提供服务
URL(网址)
协议头
网络通信有多种协议,如HTTP、HTTPS(加密的HTTP)、FTP(文件服务器)、NTP(校时服务器)等
网络数据传输需要固定的协议,否则程序无法看懂对方传输的信息
域名
域名一般是yyy.xxx.com形式的,其中xxx.com称为顶级域名(一级域名),yyy.xxx.com称为二级域名,以此类推...
域名拥有者可以定义它下一级的域名,比如我拥有huanghaozi.cn,我便可以定义www.huanghaozi.cn 、diary.huanghaozi.cn等等
(端口)
浏览网页时一般不输入端口,不输入时http协议默认为80端口,不同的端口有不同的服务器程序
路径
服务器电脑里一般有一个wwwroot文件夹作为网址里的/(根目录),服务器的程序会解析传进来的路径请求
附加参数
服务器的程序也会获取传进来的附加参数,根据参数的不同进行处理,传回不同的数据
IP地址与MAC地址
IP地址
经常上网的人大概知道,网络不是法外之地,当有人发表不良言论时,网络警察通常可以通过其IP地址进行定位
扩展:IP地址分为IPv4和IPv6,IPv4地址于2019/11/25正式耗尽,未来互联网发展就靠IPv6了,两者网域,可以说是不同的两个“世界”,目前支持IPv6的路由设备不多,可在http://test-ipv6.com 测试是否能连接到IPv6。
MAC地址
MAC地址又称物理地址,每一个网卡(或者可以说电脑)都有一个独立的MAC地址,由此可以定位具体的设备
GET请求与POST请求
上网过程中需要对服务器发出请求,才能进行网页浏览、登录等操作
HTTP、HTTPS协议中主要包含两种请求:GET与POST,可从具体的上网操作中直观理解GET与POST请求的区别
GET
顾名思义,GET就是获取,向服务器发送GET请求往往就是获取某个网页、获取某段信息的请求
常用在网站浏览
POST
顾名思义,POST就是发送,POST请求将向服务器发送信息,并获取响应返回的网页等信息
常用在网站登录、搜索
Ping
测试网络常使用ping命令测延迟等信息,用法是在cmd里输:ping 域名
例如:ping baidu.com
2020年11月29日 21:05
点赞还是要有的,万一以后就是同事了呢
2020年11月29日 21:09
啊这