python爬虫的工作原理分析

1.爬虫的工作原理

网络爬虫,即web spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页的。从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。这样看来,网络爬虫就是一个爬行程序,一个抓取网页的程序。网络爬虫的基本操作是抓取网页。那么如何才能随心所欲地获得自己想要的页面?先从url开始。

抓取网页的过程其实和读者平时使用ie浏览器浏览网页的道理是一样的。比如说你在浏览器的地址栏中输入www.baidu.com这个地址。打开网页的过程其实就是浏览器作为一个浏览的“客户端”,向服务器端发送了 一次请求,把服务器端的文件“抓”到本地,再进行解释、展现。html是一种标记语言,用标签标记内容并加以解析和区分。浏览器的功能是将获取到的html代码进行解析,然后将原始的代码转变成我们直接看到的网站页面。

简单的来讲,url就是在浏览器端输入的http://www.baidu.com这个字符串。在理解url之前,首先要理解uri的概念。

什么是uri?

web上每种可用的资源,如 html文档、图像、视频片段、程序等都由一个通用资源标志符(universal resource identifier, uri)进行定位。

uri通常由三部分组成:

访问资源的命名机制;

存放资源的主机名;

资源自身 的名称,由路径表示。

如下面的uri:http://www.why.com.cn/myhtml/html1223/

这是一个可以通过http协议访问的资源,

位于主机 www.webmonkey.com.cn上,

通过路径“/html/html40”访问。

2. url的理解和举例

url是uri的一个子集。它是uniform resource locator的缩写,译为“统一资源定位 符”。通俗地说,url是internet上描述信息资源的字符串,主要用在各种www客户程序和服务器程序上。采用url可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。url的一般格式为(带方括号[]的为可选项):

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

url的格式由三部分组成:

第一部分是协议(或称为服务方式)。

第二部分是存有该资源的主机ip地址(有时也包括端口号)。

第三部分是主机资源的具体地址,如目录和文件名等。

第一部分和第二部分用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。

3、url和uri简单比较

uri属于url更低层次的抽象,一种字符串文本标准。换句话说,uri属于父类,而url属于uri的子类。url是uri的一个子集。uri的定义是:统一资源标识符;url的定义是:统一资源定位符。二者的区别在于,uri表示请求服务器的路径,定义这么一个资源。而url同时说明要如何访问这个资源(http://)。

下面来看看两个url的小例子。

1.http协议的url示例:

使用超级文本传输协议http,提供超级文本信息服务的资源。

例:http://www.peopledaily.com.cn/channel/welcome.htm

其计算机域名为www.peopledaily.com.cn。

超级文本文件(文件类型为.html)是在目录 /channel下的welcome.htm。

这是中国人民日报的一台计算机。

例:http://www.rol.cn.net/talk/talk1.htm

其计算机域名为www.rol.cn.net。

超级文本文件(文件类型为.html)是在目录/talk下的talk1.htm。

这是瑞得聊天室的地址,可由此进入瑞得聊天室的第1室。

2.文件的url

用url表示文件时,服务器方式用file表示,后面要有主机ip地址、文件的存取路 径(即目录)和文件名等信息。

有时可以省略目录和文件名,但“/”符号不能省略。

例:file://ftp.yoyodyne.com/pub/files/foobar.txt

上面这个url代表存放在主机ftp.yoyodyne.com上的pub/files/目录下的一个文件,文件名是foobar.txt。

例:file://ftp.yoyodyne.com/pub

代表主机ftp.yoyodyne.com上的目录/pub。

例:file://ftp.yoyodyne.com/

代表主机ftp.yoyodyne.com的根目录。

爬虫最主要的处理对象就是url,它根据url地址取得所需要的文件内容,然后对它 进行进一步的处理。

因此,准确地理解url对理解网络爬虫至关重要。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持php中文网!

更多python爬虫的工作原理分析相关文章请关注php中文网!

Posted in 未分类

发表评论