如何自己写一个网络爬虫_第1页
如何自己写一个网络爬虫_第2页
如何自己写一个网络爬虫_第3页
如何自己写一个网络爬虫_第4页
如何自己写一个网络爬虫_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

这里是维基百科对网络爬虫的词条页面。网络爬虫以叫网络蜘蛛,网络机器人, 这是一个程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能 用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是 把网页中的相关数据保存下来,可以成为搜索引擎。 从技相来说,实现抓取网页可能并不是一件很困难的事情,困难的事情是对网 页的分析和整理,那是一件需要有轻量智能,需要大量数学计算的程序才能做 的事情。下面一个简单的流程: 在这里,我们只是说一下如何写一个网页抓取程序。首先我们先看一下,如何 使用命令行的方式来找开网页。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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论