浅谈一种基于http的网络蜘蛛实现

浅谈一种基于http的网络蜘蛛实现

ID:13382075

大小:151.00 KB

页数:111页

时间:2018-07-22

浅谈一种基于http的网络蜘蛛实现_第1页
浅谈一种基于http的网络蜘蛛实现_第2页
浅谈一种基于http的网络蜘蛛实现_第3页
浅谈一种基于http的网络蜘蛛实现_第4页
浅谈一种基于http的网络蜘蛛实现_第5页
资源描述:

《浅谈一种基于http的网络蜘蛛实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、浅谈一种基于HTTP的网络蜘蛛实现  1HTTP  1.1基本概念  HTTP协议,即超文本传送协议(HTTP-Hypertext浅谈一种基于HTTP的网络蜘蛛实现  1HTTP  1.1基本概念  HTTP协议,即超文本传送协议(HTTP-Hypertexttransferprotocol),定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器、从层次的角度看,HTTP是面向(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种

2、多媒体文件)的重要基础。  1.2特点  HTTP协议的主要特点可概括如下:  (1)支持客户/服务器模式。  (2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径、请求方法常用的有CET,HEAD,POST、每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。  (3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记、  (4)HTTP1.1使用持续连接:不必为每个Web对象创建一个新的连接,一个连接可以传送多个对象。 

3、 (5)无状态:HTTP协议是无状态协议、无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。  1.3请求类型  HEAD一向服务器索要与CET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就获取包含在响应消息头中的元信息。  CET一向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在WebApp.中、其中一个原因是GET可能会被网络蜘蛛等随意访问。  POST一向指定资源提交数据

4、进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或己有资源的修改。  PUT一向指定资源位置上传其最新内容。  DELETE一请求服务器删除Request-URI所标识的资源、客户端向服务器发送一个请求,服务器以一个状态行作为响应,响应的内容包括:消息协议的版本、成功或者错误编码、服务器信息、实体元信息以及必要的实体内容。根据响应类别的类别,服务器响应里可以含实体内容,但不是所有的响应都有实体内容。  2网络蜘蛛  2.1基本概念  网络爬虫又被称为网页蜘蛛,网络机器人,是一种按

5、照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。  2.2工作原理和关键技术  网络爬虫从一个或若干初始网页开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统设定的停止条件。所有被爬虫抓取的网页将会被系统存储,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。  (1)对抓取目标的描述或定义;  对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。  (2)对网页或数据的分析与过滤;  通常需

6、要用到html解析或正则分析技术。  (3)对URL的搜索策略。  网页的抓取策略可以分为深度优先、广度优先和最佳优先3种。深度优先在很多情况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。  3Python实现网络蜘蛛实例  Pvthon中实现网络蜘蛛需要用到两个关键技术:http访问及正则表达式。  3.1HTTP访问  安装httplib2包,访问程序如下:  importhttplib2  #获取HTTP对象  h=httplib2.Http()  #发出同步请求,并获取内容  resp,cont

7、ent=h.request(“http://www.baidu.com/”)#请求百  #度首页  printresp#resp是http应答头  printcontent#content是http应答内容  3.2正则抽取网页中的所有url  importre  m1=re.findall(r”'<a.*?href=”(http://[>  ”““,body)  3.3完整例子如下  #一*-encoding:utf-8一*一  #导入模块  importsys  importhttplib2  importre

8、  #定义spider类  classSpider]object):  #要爬的url和层数  def_init_(self,url,level):  self.du={}  self.url=url  self.lev

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。