python爬虫的工作原理


Posted in Python onMarch 05, 2017

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对理解网络爬虫至关重要。

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

Python 相关文章推荐
Python3基础之list列表实例解析
Aug 13 Python
给Python IDLE加上自动补全和历史功能
Nov 30 Python
python中set常用操作汇总
Jun 30 Python
python数据结构之链表详解
Sep 12 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
python批量修改xml属性的实现方式
Mar 05 Python
Python try except异常捕获机制原理解析
Apr 18 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
Python openpyxl模块实现excel读写操作
Jun 30 Python
Python 如何查找特定类型文件
Aug 17 Python
python操作mysql数据库
Mar 05 #Python
Windows安装Python、pip、easy_install的方法
Mar 05 #Python
python入门教程之识别验证码
Mar 04 #Python
python 链接和操作 memcache方法
Mar 04 #Python
快速实现基于Python的微信聊天机器人示例代码
Mar 03 #Python
Python实现在线音乐播放器
Mar 03 #Python
python开发简易版在线音乐播放器
Mar 03 #Python
You might like
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
js的对象与函数详解
2019/01/21 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
从零学Python之入门(三)序列
2014/05/25 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python3实现随机数
2018/06/25 Python
Python对切片命名的实现方法
2018/10/16 Python
Python3 集合set入门基础
2020/02/10 Python
python主要用于哪些方向
2020/07/05 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
致标枪运动员广播稿
2014/02/06 职场文书
四下基层实施方案
2014/03/28 职场文书
保密工作目标责任书
2014/07/28 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
JavaScript文档对象模型DOM
2021/11/20 Javascript
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python