小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

2014年8月31日

Linux企业级项目实践之网络爬虫(25)——管理源代码之SVN

摘要: 软件项目开发中,一般会用到源代码管理工具SVN。版本控制是管理数据变更的一种技术。对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。Tortoise... 阅读全文

posted @ 2014-08-31 23:45 牛栏山1 阅读(128) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(24)——定制规则扩展为垂直爬虫

摘要: 在垂直搜索的索引建立之前,我们需要到垂直网站上抓取资源并做一定的处理。垂直搜索与通用搜索不同之处在于,通用搜索不需要理会网站哪些资源是需要的,哪些是不需要的,一并抓取并将其文本部分做索引。而垂直搜索里,我们的目标网站往往在某一领域具有其专业性,其整体网站的结构相当规范(否则用户体验也是个灾难,想想... 阅读全文

posted @ 2014-08-31 23:37 牛栏山1 阅读(141) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(23)——系统测试:找出系统中的bug

摘要: 为了验证爬虫的业务流程、性能和健壮性需要进行测试。软件测试是描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试的目的:(1)测试是为了发现程序中的错误而执行... 阅读全文

posted @ 2014-08-31 23:31 牛栏山1 阅读(113) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(22)——编写爬虫系统服务控制脚本

摘要: 需求:1、可通过 service spider start|stop|status|restart 命令对服务进行控制2、spider服务可开机自启动start(){ echo "start spider" /home/projects/spider/spider -d & ex... 阅读全文

posted @ 2014-08-31 23:25 牛栏山1 阅读(120) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(21)——扩展为多任务爬虫

摘要: 高效的网络爬虫是搜索引擎的重要基础。采用多任务并发执行,实现类似于CPU的流水线(pipeline)运行方式,可极大地提高网络和计算资源的利用率等性能。#include "threads.h"#include "spider.h"#include "confparser.h" /* the num... 阅读全文

posted @ 2014-08-31 23:19 牛栏山1 阅读(115) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(20)——扩展成为规则插件模式

摘要: 为了方便我们爬虫功能的扩展,最好使用插件机制。使用插件技术能够在分析、设计、开发、项目计划、协作生产和产品扩展等很多方面带来好处:(1)结构清晰、易于理解。由于借鉴了硬件总线的结构,而且各个插件之间是相互独立的,所以结构非常清晰也更容易理解。(2)易修改、可维护性强。由于插件与宿主程序之间通过接口... 阅读全文

posted @ 2014-08-31 23:15 牛栏山1 阅读(139) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(19)——epoll接口

摘要: 由于要实现爬虫程序的快速抓取,显然如果采用阻塞型的I/O方式,那么系统可能很长时间都处在等待内核响应的状态中,这样爬虫程序将大大地降低效率。然而,如果采用非阻塞I/O,那么就要一直调用应用进程,反复对内核进行轮询。为了实现发送出系统调用请求,而不必一直返回进行查询,最合适的方案应该是采用poll函... 阅读全文

posted @ 2014-08-31 23:09 牛栏山1 阅读(168) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(18)——队列处理

摘要: 所有的URL都接受管理,并在此进行流动。URL从管理模块的存储空间开始,一直到最后输出给磁盘上的URL索引,都由此部分调度。首先,给出URL调度的一般过程,如图所示。其流程的各个具体操作,后面详述。要实现前面DNS的无重复有效请求,那么在这个部分里设置一个Nsite类,实现这样的功能:当一个站点请... 阅读全文

posted @ 2014-08-31 23:07 牛栏山1 阅读(156) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(17)——存储页面

摘要: 在爬虫系统中数据的流量相当大,要处理的数据内容不仅包括爬虫系统的各种数据结构空间,而且包括从外部节点中得到的各种数据,比如HTTP请求,HTML页面,ROBOT.TXT等等。如果对这些内容处理不当,那么不仅造成空间的冗余浪费,使爬虫程序效率降低,而且还可能会使系统崩溃。所以,要有合适的空间分配策略... 阅读全文

posted @ 2014-08-31 23:05 牛栏山1 阅读(111) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(16)——使用base64传输二进制数据

摘要: 用http传输二进制的数据时,需要将二进制做一下转化,例如传输的int类型,将int类型之间转为char以后,丢失掉了长度的信息,如数字123456,本来只有4个字节,但是转化成文本的“123456”是有7个字节。在int类型的时候固然好办,但是一个数组的时候,经过转化以后,在转化回来就很麻烦了。... 阅读全文

posted @ 2014-08-31 23:02 牛栏山1 阅读(151) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(15)——区分文本文件和二进制文件

摘要: HTTP协议支持文本和二进制文件传输。最常见的html格式的页面即文本,图片、音乐等为二进制文件。我们要对这两类文件加以区分并分别处理。static char * BIN_SUFFIXES = ".jpg.jpeg.gif.png.ico.bmp.swf";static int is_bin_ur... 阅读全文

posted @ 2014-08-31 22:56 牛栏山1 阅读(109) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(14)——使用正则表达式抽取HTML正文和URL

摘要: 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。... 阅读全文

posted @ 2014-08-31 22:50 牛栏山1 阅读(75) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(13)——处理user-agent

摘要: User Agent即用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者... 阅读全文

posted @ 2014-08-31 22:43 牛栏山1 阅读(101) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(12)——处理HTTP应答头

摘要: Web服务器的HTTP应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档。设置HTTP应答头往往和设置状态行中的状态代码结合起来。例如,有好几个表示“文档位置已经改变”的状态代码都伴随着一个Location头,而401(Unauthorized)状态代码则必须伴随一个WWW-... 阅读全文

posted @ 2014-08-31 22:35 牛栏山1 阅读(101) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(11)——处理http请求头

摘要: http请求头,HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他... 阅读全文

posted @ 2014-08-31 22:35 牛栏山1 阅读(109) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(10)——处理HTTP状态码

摘要: HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。他们分别是:消息(1字头)成功(2字头)这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。重定向(3字头)这类状态码代表需要客户端采取进一... 阅读全文

posted @ 2014-08-31 22:25 牛栏山1 阅读(91) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(9)——通过URL抓取网页内容

摘要: 基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志爬虫系统要处理的URL是指使用超文本传输协... 阅读全文

posted @ 2014-08-31 22:19 牛栏山1 阅读(120) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(8)——认识URL

摘要: URL是Uniform Resource Location的缩写,译为“统一资源定位符”。也可以说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL的格式由三部分组... 阅读全文

posted @ 2014-08-31 22:08 牛栏山1 阅读(111) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(7)——DNS解析

摘要: DNS 是Domain Name Service的缩写。域名系统为Internet上的主机分配域名地址和IP地址。IP地址不易于记忆,然而域名地址相比较而言是方便于记忆的。用户如果使用域名地址,当想获得IP地址时,就要向域名服务器发送请求。这个域名服务器就会自动把域名地址转为IP地址返回给用户。爬... 阅读全文

posted @ 2014-08-31 22:06 牛栏山1 阅读(104) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(6)——将程序设计成为守护进程

摘要: 在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何... 阅读全文

posted @ 2014-08-31 21:58 牛栏山1 阅读(105) 评论(0) 推荐(0) 编辑

导航