全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
这里是维基百科对网络爬虫的词条页面。网络爬虫以叫网络蜘蛛,网络机器人, 这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能 用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是 把网页中的相关数据保存下来,可以成为搜索引擎。 从技相来说,实现抓取网页可能并不是一件很困难的事情,困难的事情是对网 页的分析和整理,那是一件需要有轻量智能,需要大量数学计算的程序才能做 的事情。下面一个简单的流程: 在这里,我们只是说一下如何写一个网页抓取程序。首先我们先看一下,如何 使用命令行的方式来找开网页。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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据中心物理安全设计方案
- 2026年贵阳幼儿师范高等专科学校单招职业技能测试题库新版
- 2026年德州科技职业学院单招职业适应性考试必刷测试卷附答案
- 2026年河南机电职业学院单招职业技能考试必刷测试卷必考题
- 2026年广东省外语艺术职业学院单招职业倾向性测试题库及答案1套
- 2026年湖南大众传媒职业技术学院单招职业倾向性考试题库附答案
- 2026年阳泉师范高等专科学校单招职业倾向性考试必刷测试卷必考题
- 2026年湖南汽车工程职业学院单招综合素质考试题库及答案1套
- 2026年昆山登云科技职业学院单招职业适应性测试题库新版
- 2026年河北青年管理干部学院单招综合素质考试题库新版
- 2025广西壮族自治区农业农村厅直属事业单位公开招聘128人笔试带答案
- Unit 3 Our animal friends 考点13:排序题-牛津译林版五年级英语上册核心考点培优练 (含答案解析)
- 诗词进大学校园活动方案
- (2025年)安全生产知识考试试题及答案
- 教室岗前培训理论考试及答案解析
- 大数据时代下会计数据变化发展研究-以京东为例
- 2025年上海市保安员考试试题带解析及完整答案
- 电动车购销合同
- 全国大学生职业规划大赛《铁道机车车辆制造与维护》专业生涯发展展示【高职(专科)】
- 评优课部编四上语文故事二则获奖公开课教案教学设计二一等奖(2025-2026学年)
- 2025年养老护理培训试题及答案
评论
0/150
提交评论