零基础写python爬虫之爬虫的定义及URL构成


Posted in Python onNovember 04, 2014

一、网络爬虫的定义

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

二、浏览网页的过程

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

三、URI和URL的概念和举例

简单的来讲,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”访问。

四、URL的理解和举例

URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。
通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL的一般格式为(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment

URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是主机资源的具体地址,如目录和文件名等。
第一部分和第二部分用“://”符号隔开,
第二部分和第三部分用“/”符号隔开。
第一部分和第二部分是不可缺少的,第三部分有时可以省略。

五、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 相关文章推荐
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 Python
Django操作cookie的实现
May 26 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 Python
使用Python编写简单网络爬虫抓取视频下载资源
Nov 04 #Python
Python爬取Coursera课程资源的详细过程
Nov 04 #Python
使用python开发vim插件及心得分享
Nov 04 #Python
Python学习笔记之os模块使用总结
Nov 03 #Python
Python中获取网页状态码的两个方法
Nov 03 #Python
Python random模块常用方法
Nov 03 #Python
Python求两个list的差集、交集与并集的方法
Nov 01 #Python
You might like
来自PHP.NET的入门教程
2006/10/09 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
JS高级运动实例分析
2016/12/20 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Python流程控制 if else实现解析
2019/09/02 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
python实现横向拼接图片
2020/03/23 Python
Python中Yield的基本用法
2020/10/18 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
仓库管理专业个人自我评价范文
2013/11/11 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
殡葬服务心得体会
2014/09/11 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
史上最牛的辞职信
2015/02/28 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技