燃文小说 > 玄幻小说 > 该书审核已经通过fxl > 第四章全文阅读

于莺与知乐闹矛盾 唐母约束林筱衣食住行

唐母睡觉喜欢打呼噜,这让跟唐母同睡一个房间的林母颇有微词,唐健生怕两个长辈再起战事, 给母亲买了一张新床,将床放置在书房内。

书房成了唐母的临时房间,唐母心情愉悦决定以后晚上负责给孙子喂奶。趁机在晚上多做活动多减肥,力求达到林母一样的体形。

于莺产女之后发现自己身材走样,以前能穿的裙子现在已经穿不上了,为此于莺心急如焚,决定去自己经营的健身会所锻炼身体。徐知乐一心希望于莺在家坐月子,说什么也不给于莺出门。两人僵持不下讨价还价,于莺为了获得出门权利,同意喝下徐知乐做的松茸汤和猪蹄,其实她使的是缓兵之计,待徐知乐转身离去,她立即倒掉了松茸汤,不料徐知乐迅速返回来,眼见亲手煮的松茸汤被糟蹋,徐知乐怒不可遏与于莺吵了一架,于莺委屈无比,认为徐知乐眼里只有女儿没有她。

林筱的处境虽然比于莺好,但如同犯人一样,被唐母全天侯约束行为,比如不准洗澡不准洗头,这些行为都会导致林筱患上月子病,林筱是居于大城市的女人,不像农村女人,三五天不洗澡不洗头都没问题,她在唐母的约束下渡日如年,铤而走险让唐健放风,用洗手液干洗头发,洗完了头发之后林筱开始吹头,不料唐母闯了进来,狠狠批评了她一顿。

唐母虽然是为林筱好,但林筱抱怨连天,趁着好姐妹于莺上门做客,她把心中委屈和盘托出,于莺的处境比林筱还糟糕,两人同病相怜互倒苦水。

唐健本着家和万事兴的想法,劝说徐知乐主动向于莺赔礼道歉,在他的调解下,徐知乐与于莺言归于好。

林筱与于莺虽然活在水深火热中,但两人的处境比王珂好多了,王珂生下孩子之后引来小区居民风言风语,有人知道王珂出国之后才怀上了孩子,对王珂不自重的行为嗤之以鼻。王母为了挽回女儿王珂的面子,向嚼舌根的居民们介绍开餐馆事业有成的大蔡,宣布大蔡是王珂的丈夫,成功为王珂挽回了颜面。

林母与唐母凡事总想争个高低,两人为孩子取名僵持不下,唐健为了化解两人的矛盾,亲自为孩子取名为“唐豆”,这个名字虽然没有获得林母赞同,但唐母倒是喜爱得不得了。豆是绿色健康食物,小孙子的名字带个豆字,暗示着小孙子以后健康成长。

唐母日夜照顾唐豆,上了火咳嗽不止,林母认定唐母是感冒引起的咳嗽,要求唐母佩戴口罩,免得将感冒病毒传给孩子。两个冤家为此针锋相对,林筱于关键时刻充当调停员,即平息了两个长辈的战争,又夺回了照顾孩子的权利。她一直对唐母过份亲密照顾孩子颇有微词,欲尽母亲责任跟孩子建立感情。1.1.1 限定访问链接

一个爬虫可能仅仅想找到html页面的种子而避免其他的文件类型。为了仅仅得到html的资源,一个爬虫可以首先做一个http head的请求,以在使用request方法获取所有的资源之前,决定这个网络文件的类型。为了避免要发送过多的head请求,爬虫可以交替的检查url并且仅仅对以html,htm和反斜杠结尾的文件发送资源请求。这种策略会导致很多的html资源在无意中错过,一种相似的策略是将网络资源的扩展名同已知是html文件类型的一组扩展名(如.html,.htm,.asp,.php,.aspx,反斜杠)进行比较。

一些爬虫也会限制对任何含有“?”的资源(这些是动态生成的)进行获取请求,以避免蜘蛛爬行在某一个站点中陷入下载无穷无尽的URL的困境。

1.1.2 路径检索

一些爬虫会尽可能多的尝试下载一个特定站点的资源。Cothey(Cothey,2004)引入了一种路径检索的爬虫,它会尝试抓取需要检索资源的所有URL。例如,给定一个种子地址:它将会尝试检索/hamster/menkey/,/hamster/和/ 。Cothey发现路径检索对发现独立资源,或者一些通常爬虫检索不到的的连接是非常有效的。

一些路径检索的爬虫也被称为收割机软件,因为他们通常用于收割或者收集所有的内容,可能是从特定的页面或者主机收集相册的照片。

1.1.3 聚焦抓取

爬虫所抓取页面的重要程度也可以表述成它与给定查询之间相似程度的函数。网络爬虫尝试下载相似页面,可以称为聚焦检索或者主题检索。关于主题检索和聚焦检索的概念,最早是由Menczer(Menczer 1997; Menczer and Belew, 1998)和Chakrabarti等人首先提出来的(Chakrabarti et al., 1999)。

聚焦检索的主要问题是网页爬虫的使用环境,我们希望在实际下载页面之前,就可以知道给定页面和查询之间的相似度。一个可能的方法就是在链接之中设置锚点,这就是在早期时候,Pinkerton(Pinkerton,1994)曾经在一个爬虫中采用的策略。Diligenti等人(Diligenti等人,2000)建议使用已经抓取页面的内容去推测查询和未访问页的相似度。一个聚焦查询的表现的好坏主要依赖于查询主题内容的丰富程度,通常还会依赖页面查询引擎提供的查询起点。

1.1.4 抓取深层的网页

很多的页面隐藏的很深或隐藏在在看不到的网络之中。这些页面通常只有在向数据库提交查询的时候才可以访问到,如果没有链接指向他们的话,一般的爬虫是不能访问到这些页面的。谷歌站点地图协议和mod oai(Nelson等人,2005)尝试允许发现这些深层次的资源。

深层页面抓取器增加了抓取网页的链接数。一些爬虫仅仅抓取形如<a href=”url”链接。某些情况下,例如Googlebot,WEB抓取的是所有超文本所包含的内容,标签和文本。

1.1.5 WEB3.0检索

Web3.0为下一代搜索技术定义了更先进的技术和新的准则,可以概括为语义网络和网站模板解析的概念。第三代检索技术将建立在人机巧妙的联系的基础上。

1.2重新访问策略

网络具有动态性很强的特性。抓取网络上的一小部分内容可能会花费真的很长的时间,通常用周或者月来衡量。当爬虫完成它的抓取的任务以后,很多操作是可能会发生的,这些操作包括新建,更新和删除。

从搜索引擎的角度来看,不检测这些事件是有成本的,成本就是我们仅仅拥有一份过时的资源。最常使用的成本函数,是新鲜度和过时性(2000年,Cho 和Garcia-Molina)

新鲜度:这是一个衡量抓取内容是不是准确的二元值。在时间t内,仓库中页面p的新鲜度是这样定义的:

新鲜度

新鲜度

过时性:这是一个衡量本地已抓取的内容过时程度的指标。在时间t时,仓库中页面p的时效性的定义如下:

过时性

过时性

在页面抓取中,新鲜度和过时性的发展

Coffman等人(Edward G. Coffman,1998)是从事爬虫对象定义的,他们提出了一个相当于新鲜度的概念,但是使用了不同的措词:他们建议爬虫必须最小化过时页面部分。他们指出网络爬行的问题就相当于多个队列,一个投票系统;这里,爬虫是服务器,不同的站点是队列。页面修改是到达的顾客,页面切换的时间是页面进入一个单一站点的间隔。在这个模型下,每一个顾客在投票系统的平均时间,相当于爬虫的平均过时性。

爬虫的目标是尽可能高的提高页面的新鲜度,同时降低页面的过时性。这一目标并不是完全一样的,第一种情况,爬虫关心的是有多少页面时过时的;在第二种情况,爬虫关心的页面过时了多少。

两种最简单的重新访问策略是由Cho和Garcia-Molina研究的(Cho 和Garcia-Molina,2003):

统一策略:使用相同的频率,重新访问收藏中的所有的链接,而不考虑他们更新频率。

正比策略:对变化越多的网页,重新访问的频率也越高。网页访问的频率和网页变化的频率直接相关。

(两种情况下,爬虫的重新抓取都可以采用随机方式,或者固定的顺序)

Cho和Garcia-Molina证明了一个出人意料的结果。以平均新鲜度方式衡量,统一策略在模拟页面和真实的网络抓取中都比正比策略出色。对于这种结果的解释是:当一个页面变化太快的时候,爬虫将会将会在不断的尝试重新抓取而浪费很多时间,但是却还是不能保证页面的新鲜度。

为了提高页面的新鲜度,我们应该宣判变化太快的页面死罪(Cho和Garcia-Molina, 2003a)。最佳的重新访问策略既不是统一策略,也不是正比策略;保持平均页面新鲜度高的最佳方法策略包括忽略那些变化太快的页面,而保持页面平均过时性低的方法则是对每一页按照页面变化率单调变化的策略访问。两种情况下,最佳的策略较正比策略,都更接近统一策略。正如Coffman等人(Edward G.Coffman,1998)所注意到的:“为了最小化页面过时的时间,对任一个页面的访问都应该尽可能的均匀间隔地访问。”对于重新访问的详尽的策略在大体上是不可以达到的,但是他们可以从数学上得到,因为他们依赖于页面的变化。(Cho和Garcia-Molina,2003a)指出指数变化是描述页面变化的好方法,同时(Ipeirotis等人,2005)指出了怎么使用统计工具去发现适合这些变化的参数。注意在这里的重新访问策略认为每一个页面都是相同的(网络上所有的页面价值都是一样的)这不是现实的情况,所以,为了获取更好的抓取策略,更多有关网页质量的信息应该考虑进去。

1.3 平衡礼貌策略

爬虫相比于人,可以有更快的检索速度和更深的层次,所以,他们可能使一个站点瘫痪。不需要说一个单独的爬虫一秒钟要执行多条请求,下载大的文件。一个服务器也会很难响应多线程爬虫的请求。

就像Koster(Koster,1995)所注意的那样,爬虫的使用对很多工作都是很有用的,但是对一般的社区,也需要付出代价。使用爬虫的代价包括:

? 网络资源:在很长一段时间,爬虫使用相当的带宽高度并行地工作。

? 服务器超载:尤其是对给定服务器的访问过高时。

? 质量糟糕的爬虫,可能导致服务器或者路由器瘫痪,或者会尝试下载自己无法处理的页面。

? 个人爬虫,如果过多的人使用,可能导致网络或者服务器阻塞。

对这些问题的一个部分解决方法是漫游器排除协议(Robots exclusion protocol),也被称为robots.txt议定书(Koster,1996),这份协议对于管理员指明网络服务器的那一部分不能到达是一个标准。这个标准没有包括重新访问一台服务器的间隔的建议,虽然访问间隔是避免服务器超载的最有效的办法。最近的商业搜索软件,如Ask Jeeves,MSN和Yahoo可以在robots.txt中使用一个额外的 “Crawl-delay”参数来指明请求之间的延迟。

对连接间隔时间的第一个建议由Koster 1993年给出,时间是60秒。按照这个速度,如果一个站点有超过10万的页面,即使我们拥有零延迟和无穷带宽的完美连接,它也会需要两个月的时间来下载整个站点,并且,这个服务器中的资源,只有一小部分可以使用。这似乎是不可以接受的。

Cho(Cho和Garcia-Molina, 2003)使用10秒作为访问的间隔时间,WIRE爬虫(Baeza-Yates and Castillo, 2002)使用15秒作为默认间隔。MercatorWeb(Heydon 和Najork, 1999)爬虫使用了一种自适应的平衡策略:如果从某一服务器下载一个文档需要t秒钟,爬虫就等待10t秒的时间,然后开始下一个页面。Dill等人 (Dill et al., 2002) 使用1秒。

对于那些使用爬虫用于研究目的的,一个更详细的成本-效益分析是必要的,当决定去哪一个站点抓取,使用多快的速度抓取的时候,伦理的因素也需要考虑进来。

访问记录显示已知爬虫的访问间隔从20秒钟到3-4分钟不等。需要注意的是即使很礼貌,采取了所有的安全措施来避免服务器超载,还是会引来一些网络服务器管理员的抱怨的。Brin和Page注意到:运行一个针对超过50万服务器的爬虫,会产生很多的邮件和电话。这是因为有无数的人在上网,而这些人不知道爬虫是什么,因为这是他们第一次见到。(Brin和Page,1998)

1.4 并行策略

一个并行爬虫是并行运行多个进程的爬虫。它的目标是最大化下载的速度,同时尽量减少并行的开销和下载重复的页面。为了避免下载一个页面两次,爬虫系统需要策略来处理爬虫运行时新发现的URL,因为同一个URL地址,可能被不同的爬虫进程抓到。

2. 网络爬虫体系结构

网页爬虫的高层体系结构

一个爬虫不能像上面所说的,仅仅只有一个好的抓取策略,还需要有一个高度优化的结构。

Shkapenyuk和Suel(Shkapenyuk和Suel,2002)指出:设计一个短时间内,一秒下载几个页面的颇慢的爬虫是一件很容易的事情,而要设计一个使用几周可以下载百万级页面的高性能的爬虫,将会在系统设计,I/O和网络效率,健壮性和易用性方面遇到众多挑战。

网路爬虫是搜索引擎的核心,他们算法和结构上的细节被当作商业机密。当爬虫的设计发布时,总会有一些为了阻止别人复制工作而缺失的细节。人们也开始关注主要用于阻止主要搜索引擎发布他们的排序算法的“搜索引擎垃圾邮件”。

2.1 URL一般化

爬虫通常会执行几种类型的URL规范化来避免重复抓取某些资源。URL一般化也被称为URL标准化,指的是修正URL并且使其前后一致的过程。这里有几种一般化方法,包括转化URL为小写的,去除逗号(如‘.’ ‘..’等),对非空的路径,在末尾加反斜杠。

3. 爬虫身份识别

网络爬虫通过使用http请求的用户代理(User Agent)字段来向网络服务器表明他们的身份。网络管理员则通过检查网络服务器的日志,使用用户代理字段来辨认哪一个爬虫曾经访问过以及它访问的频率。用户代理字段可能会包含一个可以让管理员获取爬虫更多信息的URL。邮件抓取器和其他怀有恶意的网络爬虫通常不会留任何的用户代理字段内容,或者他们也会将他们的身份伪装成浏览器或者其他的知名爬虫。

对于网路爬虫,留下用户标志信息是十分重要的;这样,网络管理员在需要的时候就可以联系爬虫的主人。有时,爬虫可能会陷入爬虫陷阱或者使一个服务器超负荷,这时,爬虫主人需要使爬虫停止。对那些有兴趣了解特定爬虫访问时间网络管理员来讲,用户标识信息是十分重要的。(未完待续)