




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
这里是维基百科对网络爬虫的词条页面。网络爬虫以叫网络蜘蛛,网络机器人, 这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能 用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是 把网页中的相关数据保存下来,可以成为搜索引擎。 从技相来说,实现抓取网页可能并不是一件很困难的事情,困难的事情是对网 页的分析和整理,那是一件需要有轻量智能,需要大量数学计算的程序才能做 的事情。下面一个简单的流程: 在这里,我们只是说一下如何写一个网页抓取程序。首先我们先看一下,如何 使用命令行的方式来找开网页。telnet 80 GET /index.html HTTP/1.0 按回车两次使用 telnet 就是告诉你其实这是一个 socket 的技术,并且使用 HTTP 的协议,如 GET 方法来获得网页,当然,接下来的事你就需要解析 HTML 文法,甚至还需要解析 Javascript,因为现在的网页使用 Ajax 的越来 越多了,而很多网页内容都是通过 Ajax 技术加载的,因为,只是简单地解析 HTML 文件在未来会远远不够。当然,在这里,只是展示一个非常简单的抓取, 简单到只能做为一个例子,下面这个示例的伪代码: 取网页 for each 链接 in 当前网页所有的链接 if(如果本链接是我们想要的 | 这个链接从未访问过) 处理对本链接 把本链接设置为已访问 require “rubygems” require “mechanize” class Crawler WWW:Mechanize attr_accessor :callback INDEX = 0 DOWNLOAD = 1 PASS = 2 def initialize super init first = true self.user_agent_alias = “Windows IE 6 end def init visited = end def remember(link) visited link end def perform_index(link) self.get(link) if(self.page.class.to_s = “WWW:Mechanize:Page”) links = self.page.links.map |link| link.href - visited links.each do |alink| start(alink) end end end def start(link) return if link.nil? if(!visited.include?(link) action = callback.call(link) if(first) first = false perform_index(link) end case action when INDEX perform_index(link) when DOWNLOAD self.get(link).save_as(File.basename(link) when PASS puts “passing on #link” end end end def get(site) begin puts “getting #site” visited site super(site) rescue puts “error getting #site” end end end 上面的代码就不必多说了,大家可以去试试。下面是如何使用上面的代码: require “crawler” x = Crawler.new callback = lambda do |link| if(link =/.(zip|rar|gz|pdf|doc) x.remember(link) return Crawler:PASS elsif(link =/.(jpg|jpeg)/) return Crawler:DOWNLOAD end return Crawler:INDEX; end x.callback = callback x.start(””) 下面是一些和网络爬虫相关的开源网络项目 is a .NET crawler written in C# using SQL 2005 and Lucene and is released under the GNU General Public License. DataparkSearch is a crawler and search engine released under the GNU General Public License. GNU Wget is a command-line-operated crawler written in C and released under the GPL. It is typically used to mirror Web and FTP sites. GRUB is an open source distributed search crawler that Wikia Search ( ) uses to crawl the web. Heritrix is the Internet Archives archival-quality crawler, designed for archiving periodic snapshots of a large portion of the Web. It was written in Java. ht:/Dig includes a Web crawler in its indexing engine. HTTrack uses a Web crawler to create a mirror of a web site for off-line viewing. It is writte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高速公路广告施工合同(3篇)
- 事业单位合同履行过程中的审计与监督合同
- 2025国企公务员面试题及答案
- 金融科技公司股东间风险控制借款协议
- 存单质押担保贷款合同范本-@-1
- 注册不良资产处置公司并实现协议转让的深度合作协议-@-1
- 双方子女抚养及教育经费分配补充协议书
- 2025公务员面试题制作方案及答案
- 园林专业自考试题及答案
- 环杓关节脱位术后护理
- 23G409先张法预应力混凝土管桩
- 全国计算机等级考试(二级)考试题库附完整答案(典优)
- 四川省2019年 (2017级)普通高中学业水平考试通用技术试卷
- GB/T 19227-2008煤中氮的测定方法
- 《鱼》 一种提高士气和改善业绩的奇妙方法
- 民航安全检查员(四级)理论考试题库(浓缩500题)
- 临床护理实践指南全本
- 拆墙协议书范本
- 下肢深静脉血栓及肺栓塞
- 河南省地图含市县地图矢量分层地图行政区划市县概况ppt模板
- 绩效管理全套ppt课件(完整版)
评论
0/150
提交评论