网络爬虫的基本操作是抓取网页。首先要了解下URL~~
在理解URL之前,先了解下URI,这两个概念我曾经混淆过~@_@||
什么是URI?
Web上每种可用的资源,如:html文档、视频,图片等都由一个通用的资源标志符(Universal Resources Identifier,即URI)进行定位
URI的组成
URI通常由三部分组成:(1)访问资源的命名机制;(2)存放资源的主机名;(3)资源自身的名称,由路径表示。
例如:http://www.cnblogs.com/lmei/p/3463371.html,这就是URI。
这个URI我们可以这样来解释它:这是一个通过HTTP协议访问的资源,位于主机www.cnblogs.com上,通过路径"/lmei/p/3463371.html "访问。
那什么是URL呢?
URL(Uniform Resources Locator)是URI的一个子集。它被译为“统一资源定位符”。
URL是Internet上描述信息资源的字符串,主要用于各种www客户程序和服务器程序上。
URL的组成:
(1)协议(或称为服务方式);
(2)存有该资源的主机的IP地址(有时也包括端口号);
(3)主机资源的具体地址,如:目录和文件名等。
注:(1)和(2)不可省略,(3)有时可以省略
URL和URI的联系与区别
URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。上面的 mailto、news 和 isbn URI 都是 URN 的示例。
-- 来自CSDN论坛
URI 和 URL 概念上的不同反映在此类和 URL 类的不同中。
此类的实例代表由 RFC 2396 定义的语法意义上的一个 URI 引用。URI 可以是绝对的,也可以是相对的。对 URI 字符串按照一般语法进行解析,不考虑它所指定的方案(如果有)不对主机(如果有)执行查找,也不构造依赖于方案的流处理程序。相等性、哈希计算以及比较都严格地根据实例的字符内容进行定义。换句话说,一个 URI 实例和一个支持语法意义上的、依赖于方案的比较、规范化、解析和相对化计算的结构化字符串差不多。
作为对照,URL 类的实例代表了 URL 的语法组成部分以及访问它描述的资源所需的信息。URL 必须是绝对的,即它必须始终指定一个方案。URL 字符串按照其方案进行解析。通常会为 URL 建立一个流处理程序,实际上无法为未提供处理程序的方案创建一个 URL 实例。相等性和哈希计算依赖于方案和主机的 Internet 地址(如果有);没有定义比较。换句话说,URL 是一个结构化字符串,它支持解析的语法运算以及查找主机和打开到指定资源的连接之类的网络 I/O 操作。