python网络爬虫(一):网络爬虫科普与URL含义
1. 科普
通用搜索引擎处理的对象是互联网的网页,目前网页的数量数以亿计,所以搜索引擎面临的第一个问题是如何设计出高效的下载系统,已将海量的网页下载到本地,在本地形成互联网网页的镜像。网络爬虫就是担当此大任的。
抓取网页的过程其实和读者平时使用IE浏览器浏览网页的道理是一样的。比如说你在浏览器的地址栏中输入 www.baidu.com 这个地址。打开网页的过程其实就是浏览器作为一个浏览的“客户端”,向服务器端发送了一次请求,把服务器端的文件“抓”到本地,再进行解释、展现。浏览器的功能是将获取的HTML代码进行解析,然后将原始的网页转化为我们看到的网站页面。
网络爬虫最基本的思路就是:从一个页面开始,分析其中的url,提取出来,然后通过这些链接寻求下一个页面。如此往复。
2. 通用爬虫框架
首先,从互联网上精心选择一部分网页,以这些网页的链接地址最为种子URL,将这些种子RUL存入待抓取的URL队列(1),从待抓取的URL队列开始读取一个url(2)。其中的链接地址经过DNS解析(3)转化为网站服务器对应的IP地址。网页下载器根据IP地址向服务器发送请求,获得网页(5),下载好网页后一方面作为原始数据保存到页面库中,等待建立索引等后处理。另一方面将该网页的地址存到已经抓取的队列(8)(避免重复爬取)。对于刚才爬取的网页进行解析(6),抽取其中的url(7),对于不再已抓取URL队列中的URL存于待抓取URL队列(9)和。重复刚才的故事。
3. URL
爬虫最主要的处理对象是URL。简单说url就是输入的网址(例如:http://www.cnblogs.com/kaituorensheng/)。理解URL之前首先理解URI.
Web上每种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个通用资源标志符(Universal Resource Identifier, URI)进行定位。
URI通常由三部分组成:
- 访问资源的命名机制
- 存放资源的主机名
- 资源自身 的名称,由路径表示
如URI:http://www.why.com.cn/myhtml/html1223/
我们可以这样解释它:
- 这是一个可以通过HTTP协议访问的资源
- 位于主机 www.why.com.cn上
- 通过路径“/myhtml/html1223/”访问
URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。
通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL的格式由三部分组成:
- 第一部分是协议(或称为服务方式)
- 第二部分是存有该资源的主机IP地址(有时也包括端口号)
- 第三部分是主机资源的具体地址,如目录和文件名等
第一部分和第二部分用“://”符号隔开
第二部分和第三部分用“/”符号隔开
第一部分和第二部分是不可缺少的,第三部分有时可以省略
3. 1 HTTP协议的URL示例
使用超级文本传输协议HTTP,提供超级文本信息服务的资源。
例:
其计算机域名为www.peopledaily.com.cn。
超级文本文件(文件类型为.html)是在目录 /channel下的welcome.htm。
3.2 文件的URL
用URL表示文件时,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即目录)和文件名等信息。
有时可以省略目录和文件名,但“/”符号不能省略。
例:file://ftp.yoyodyne.com/pub/files/foobar.txt
上面这个URL代表存放在主机ftp.yoyodyne.com上的pub/files/目录下的一个文件,文件名是foobar.txt。
python网络爬虫(一):网络爬虫科普与URL含义的更多相关文章
- python Cmd实例之网络爬虫应用
python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...
- 【Python网络爬虫一】爬虫原理和URL基本构成
1.爬虫定义 网络爬虫,即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常 ...
- 爬虫中网络请求的那些事之urllib库
目录 爬虫之网络请求中的那些事 urllib库 urlopen函数 urlretrieve函数 urlencode.parse_qs函数 urlparse.urlsplit函数: request.Re ...
- python爬虫(一)_爬虫原理和数据抓取
本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...
- Python爬虫-01:爬虫的概念及分类
目录 # 1. 为什么要爬虫? 2. 什么是爬虫? 3. 爬虫如何抓取网页数据? # 4. Python爬虫的优势? 5. 学习路线 6. 爬虫的分类 6.1 通用爬虫: 6.2 聚焦爬虫: # 1. ...
- Python爬虫-什么是爬虫?
百度百科是这样定义爬虫的: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂 ...
- python应用之爬虫实战1 爬虫基本原理
知识内容: 1.爬虫是什么 2.爬虫的基本流程 3.request和response 4.python爬虫工具 参考:http://www.cnblogs.com/linhaifeng/article ...
- Python爬虫与反爬虫(7)
[Python基础知识]Python爬虫与反爬虫(7) 很久没有补爬虫了,相信在白蚁二周年庆的活动大厅比赛中遇到了关于反爬虫的问题吧 这节我会做个基本分享. 从功能上来讲,爬虫一般分为数据采集,处理, ...
- python爬虫之认识爬虫和爬虫原理
python爬虫之基础学习(一) 网络爬虫 网络爬虫也叫网络蜘蛛.网络机器人.如今属于数据的时代,信息采集变得尤为重要,可以想象单单依靠人力去采集,是一件无比艰辛和困难的事情.网络爬虫的产生就是代替人 ...
随机推荐
- Log Parser 2.2
Log Parser 2.2 是一个功能强大的通用工具,它可对基于文本的数据(如日志文件.XML 文件和 CSV 文件)以及 Windows 操作系统上的重要数据源(如事件日志.注册表.文件系统和 A ...
- Linux nmon 监控工具使用
Linux 系统下监控指标及指标查看 一.工具介绍 Linux 系统下资源监控使用nmon 工具.它可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新且并不会消耗大量的CPU ...
- java实现合并两个已经排序的列表
相对于C++来说,Java的最大特点之一就是没有令人困惑的指针,但是我们不可否认,在某些特定的情境下,指针确实算的上一把利刃.虽然Java中没有明确定义出指针,但是由于类的思想,我们可以使用class ...
- iOS开发网络篇—大文件的多线程断点下载(转)
http://www.cnblogs.com/wendingding/p/3947550.html iOS开发网络篇—多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了 ...
- LintCode-Unique Path II
Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...
- WPF 进程间通讯----inter-process communication
进程间通讯--inter-process communication 进程间相互通讯的方法有很多,如用web services,xml 等互相读取, 网络的可以使用socket 等. 2个WinFo ...
- 新建标准mavenWeb工程以及Maven的web应用标准目录结构建议
到现在为止,使用Maven结构的Web工程越来越多,因此在此介绍一下通过Maven来构建项目的相关知识. 文档主要分为两部分: 1.如何通过maven来构建多模块的web项目 ...
- 常用sqlserver语句
1.查看表上的索引 sp_helpIndex [表名] --查询表上拥有的索引 2.更新其它表 update 申请信息set 研发部门='123',版本信息='321'where 单号=(selec ...
- C++同步串口通信
问题描述: C++串口通信,设置同步串口通信 问题解决: (1)打开串口 注: 使用串口需要添加<Windows.h>头文件,打开串口主要是使用CreateFile ...
- 【BZOJ】【1565】【NOI2009】PVZ 植物大战僵尸
网络流/最大权闭合子图+拓扑排序 感动死了>_<,一年多以前刚知道网络流的时候听说了这道名字很带感的题目,现在终于有实力切掉它了. 这题是最大权闭合子图模型的经典应用<_<,首 ...