在上一篇文章中,我们大概地了解了网络爬虫的一些基本知识,这篇文章主要讲述下我们平时浏览网页时,浏览器如何响应我们的访问以及URL、URI的相关知识。
爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。
浏览网页的过程
用户在浏览器中输入我们想要查询的信息后,浏览器就会作为一个客户端,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到我们所需要的信息啦。
浏览器的功能是将获取到的HTML代码进行解析,然后将原始的代码转变成我们直接看到的网站页面。
HTML是一种标记语言,用标签标记内容并加以解析和区分
因此,抓取网页的过程其实和用户平时使用浏览器浏览网页的道理是一样的。用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。
URI和URL的认识
在爬虫的实现中,我们曾提到调度器首先要从URL管理器中获得URL,才可以进行下一步的访问。那么URL是什么呢?简单的来讲,URL就是在浏览器端输入一个要访问的网址,比如说百度首页的网址 http://www.baidu.com 就是一个URL。
在理解URL(统一资源定位符)之前,我们还是首先理解下URI(统一资源标识符)的概念。
什么是URI?
Web上每种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个通用资源标志符(Universal Resource Identifier, URI)进行定位。
URI通常由三部分组成:
- 访问资源的命名机制;
- 存放资源的主机名;
- 资源自身的名称,由路径表示。
如下面的URI:
http://mooc.guokr.com/html/html21/
我们可以这样解释它:
- 这是一个可以通过HTTP协议访问的资源,使用http:或者https:等协议方案名获取资源时需要制定协议类型。
- 位于主机mooc.guokr.com上。
- 通过路径"/html/html21"访问。
什么是URL?
URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL的一般格式为(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
同样地,URL的格式也主要由三部分组成:
- 第一部分是协议(或称为服务方式)。
- 第二部分是存有该资源的主机IP地址(有时也包括端口号)。
- 第三部分是主机资源的具体地址,如目录和文件名等。
第一部分和第二部分用“://”符号隔开,
第二部分和第三部分用“/”符号隔开。
第一部分和第二部分是不可缺少的,第三部分有时可以省略。
如下面的URL:
https://www.coursera.org/course/interactivepython1
- 这是一个可以通过HTTPS协议访问的资源
- 计算机域名是www.coursera.org
- interactivepython1存放在主机www.coursera.org上的目录/course下
URL和URI的区别
URL是URI的一个子集,URI表示请求服务器的路径,定义这么一个资源,而URL同时说明要如何访问这个资源(http://)
网友评论