定义网络爬虫

         网络爬虫(Web Spider,也被称为网络蜘蛛,网络机器人,也被称为网页追逐者)。按照一定的规则,维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自己主动索引,模拟程序或者蠕虫。

假设把互联网比喻成一个蜘蛛网。那么Spider就是在网上爬来爬去的蜘蛛。

        网络蜘蛛是通过网页的链接地址来寻找网页的。从站点某一个页面(一般是首页)開始,读取网页的内容。找到在网页中的其他链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个站点全部的网页都抓取完为止。假设把整个互联网当成一个站点,那么网络蜘蛛就能够用这个原理把互联网上全部的网页都抓取下来。这样看来,网络爬虫就是一个爬行程序,一个抓取网页的程序。
        简单地说,网络爬虫的基本任务就是抓取网页内容

URL概念

        抓取网页的过程事实上和读者平时使用IE浏览器浏览网页的道理是一样的。

比方说你在浏览器的地址栏中输入    www.baidu.com    这个地址。打开网页的过程事实上就是浏览器作为一个浏览的“client”,向server端发送了 一次请求。把server端的文件“抓”到本地。再进行解释、展现。

HTML是一种标记语言,用标签标记内容并加以解析和区分。

浏览器的功能是将获取到的HTML代码进行解析。然后将原始的代码转变成我们直接看到的站点页面。


        在理解URL之前,首先要理解URI的概念

Web上每种可用的资源。如 HTML文档、图像、视频片段、程序等都由一个通用资源标志符(Universal Resource Identifier。 URI)进行定位。 URI通常由三部分组成:

         ①訪问资源的命名机制;

         ②存放资源的主机名。

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

如URI:http://www.baidu.com.cn/myhtml/html1223/。我们能够这样解释它:

        ①这是一个能够通过HTTP协议訪问的资源,

        ②位于主机www.baidu.com.cn上,

        ③通过路径“/html/html40”訪问。


URL的概念
         URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。通俗地说,URL是Internet上描写叙述信息资源的字符串。主要用在各种WWW客户程序和server程序上。採用URL能够用一种统一的格式来描写叙述各种信息资源,包含文件、server的地址和文件夹等。

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表示文件时,server方式用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根目录文件夹。

Python爬行动物(一):基本概念的更多相关文章

  1. Python学习:基本概念

    Python学习:基本概念 一,python的特点: 1,python应用场景多;爬虫,网站,数据挖掘,可视化演示. 2,python运行速度慢,但如果CPU够强,这差距并不明显. 3,严格的缩进式编 ...

  2. python面向对象编程 -- 基本概念

    面向对象的编程简要概括就是将要处理的问题抽象为数据和操作的集合,用类对其进行封装.其中数据和操作都称为类的属性,它们是一般是不变的. 对类进行实例化生成我们所说的对象,对象有自己的属性.对象的属性一般 ...

  3. python 中面向对象的概念

    原文 域和作用空间 本地域,函数域(nonlocal)和 全局域(global) def scope_test(): def do_local(): spam = "local spam&q ...

  4. Python错误和异常概念(总)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6435956.html 本文出自:[Edwin博客园] Python错误和异常概念(总) 1. 错误和异常的处 ...

  5. 『Python题库 - 简答题』 Python中的基本概念 (121道)

    ## 『Python题库 - 简答题』 Python中的基本概念 1. Python和Java.PHP.C.C#.C++等其他语言的对比? 2. 简述解释型和编译型编程语言? 3. 代码中要修改不可变 ...

  6. python里类的概念

    Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类,然后用人类这个类定义出每个具体的人--你.我.他等作为其对象.类还拥有属性和功能,属性即类本身的 ...

  7. 【Python】【一些概念与对比】

    type.__new__()  : 返回类.可以把类看作是metaclass 创建出来的实例 普通类里的__new__() : 返回类的实例. __new__() : 返回类的实例.Python解释器 ...

  8. python基础整理----基本概念和知识

    整理一下python的基本概念和知识, 主要用python3为语法标准. python介绍 一种面向对象的解释性计算机设计语言,具有丰富和强大的库. python定位:"优雅".& ...

  9. Python super() 函数的概念和例子

    概念: super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重 ...

随机推荐

  1. [leetcode] Reverse Linked List 分类: leetcode 算法 2015-07-09 18:44 2人阅读 评论(0) 收藏

    反转链表:比较简单的问题,可以遍历也可以递归. # Definition for singly-linked list. class ListNode: def __init__(self, x): ...

  2. IOS_Note

    关键字:可以搜索这些关键字找到具体内容 退回输入键盘.CGRect.CGPoint & CGSize.设置透明度.设置背景色.自定义颜色. 竖屏.横屏.状态栏高  (显示时间和网络状态). 导 ...

  3. Qt状态机框架

    The State Machine Framework 状态机框架提供了用于创建和执行状态图的类.概念和符号是基于Harel的Statecharts: A visual formalism for c ...

  4. jQuery手写几个常见的滑动下拉菜单 分分秒秒学习JS

    一般的企业网站再我们再实际工作中,有些特效,用jQuery来做,显得极其简单,除非一些大的公司,需要封装自己的类. 今天,我们讲解jQuery入门知识,来写几个简单jQuery滑动下拉菜单.感受一下j ...

  5. 【译】在ASP.NET中创建PDF-iTextSharp起步

    原文 [译]在ASP.NET中创建PDF-iTextSharp起步 .Net framework 中自身并不包含可以和pdf打交道的方法.所以,当你需要你的ASP.Net Web应用程序中包含创建或与 ...

  6. asp.net错误.在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错

    解决办法:将该项目所在目录设置为虚拟目录,右键-转为应用程序.

  7. pthread_setschedprio()函数详解!!!

    pthread_setschedprio() Set a thread's priority 用于设置现成的优先级 包含在头文件 #include <pthread.h> 用法:int p ...

  8. Eclipse用法和技巧十五:自动添加未实现方法1

    java代码中经常要实现一些接口,这个也是java代码独有的地方.实现接口,就意味着要实现这个接口中定义的方法,如果一个个去码出方法就需要记得方法名称等等,就算有内容辅助快捷键帮助,也是很麻烦的.这里 ...

  9. 让office2003和office2010共存的方法【转】

    前段时间由于工作需要安装office2010,每次打开word都会弹出安装配置界面,反之亦然.于是我在网上找了不少资料.也试了不少方法,终于试用了以下方法得以解决,以下来源于网络. 电脑上同时安装了O ...

  10. 翻转整数 Reverse digits of a number

    两种方法翻转一个整数.顺序翻转和递归翻转 这里没考虑overflow的情况 递归的作用是使得反向处理.即从递归栈的最低端開始处理.通过绘图可得. 假设是rec(num/10): 12345 1234 ...