




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
这里是维基百科对网络爬虫的词条页面。网络爬虫以叫网络蜘蛛,网络机器人, 这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能 用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是 把网页中的相关数据保存下来,可以成为搜索引擎。 从技相来说,实现抓取网页可能并不是一件很困难的事情,困难的事情是对网 页的分析和整理,那是一件需要有轻量智能,需要大量数学计算的程序才能做 的事情。下面一个简单的流程: 在这里,我们只是说一下如何写一个网页抓取程序。首先我们先看一下,如何 使用命令行的方式来找开网页。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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025汽车维修公司劳动合同
- 2025幼儿教育机构场地租赁合同 幼儿教育机构场地租赁合同范本
- 2025贷款公司借款合同模板
- 2025关于租赁合同模板
- 2025房产买卖合同范本
- 2025精简版借款合同协议
- 2025家具购销合同的范本
- 2025标准化的煤炭交易合同模板
- 2025年酒吧装修合同范本
- 2025合同法中的条款等同与相似的关联与差异
- 社群健康助理员职业技能鉴定考试题及答案
- 走进物理-走向统一的自然力(上)智慧树知到答案2024年广西师范大学
- 小学三年级数学两位数乘两位数笔算能力测验练习题
- 心理发展与教育智慧树知到期末考试答案章节答案2024年浙江师范大学
- MOOC 国情分析与商业设计-暨南大学 中国大学慕课答案
- MOOC 大学体育-华中科技大学 中国大学慕课答案
- 《光伏发电工程工程量清单计价规范》
- 国家卫生部《综合医院分级管理标准》
- DB64++1996-2024+燃煤电厂大气污染物排放标准
- 初中八年级数学课件-最短路径-将军饮马问题
- 信息论与编码期末考试题(全套)
评论
0/150
提交评论