Python爬虫零基础教程03

首页 / Python / 正文

网络爬虫的目的通常是获取某个网页的特定信息(例如百度文库的文章、股票数据、天气数据等),这就涉及到网络的连接过程了,本文将极其简单抽象地讲解爬虫涉及到的网络通信国过程,以及一些常用的术语。
额,仍然还没有开始写代码。如已了解本篇芝士,阔以直接跳至下一节教程。

从零开始的网络通信

假如你想与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(网址)

网址也叫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

打赏
评论区
头像
    头像
    fancy
    2020年11月29日 21:05
    回复

    点赞还是要有的,万一以后就是同事了呢

      头像
      huanghaozi
      2020年11月29日 21:09
      回复

      啊这