加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 海宁网 (https://www.hainingwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

搜索引擎里网络爬虫的设计分析

发布时间:2022-02-13 12:24:03 所属栏目:建站 来源:互联网
导读:说的简单易懂一些,网络爬虫跟你使用的〖离线阅读〗工具差不多。说离线,其实还是要跟网络联结,否则怎么抓东西下来?那么不同的地方在哪里? 1)网络爬虫高度可配置性。 2)网络爬虫可以解析抓到的网页里的链接 3)网络爬虫有简单的存储配置 4)网络爬虫拥
  说的简单易懂一些,网络爬虫跟你使用的〖离线阅读〗工具差不多。说离线,其实还是要跟网络联结,否则怎么抓东西下来?那么不同的地方在哪里?
 
  1)网络爬虫高度可配置性。
 
  2)网络爬虫可以解析抓到的网页里的链接
 
  3)网络爬虫有简单的存储配置
 
  4)网络爬虫拥有智能的根据网页更新分析功能
 
  5)网络爬虫的效率相当的高
 
  那么依据特征,其实也就是要求了,如何设计爬虫呢?要注重哪些步骤呢?
 
  1)url 的遍历和纪录
 
  这点 larbin 做得非常的好,其实对于url的遍历是很简单的,例如:
 
  cat [what you got]  tr /" //n   gawk '{print $2}'   pcregrep ^http://
 
  就可以得到一个所由的 url 列表
 
  2)多进程 VS 多线程
 
  各有优点了,现在一台普通的PC 例如 booso.com 一天可以轻松爬下5个G的数据。大约20万网页。
 
  3)时间更新控制
 
  最傻的做法是没有时间更新权重,一通的爬,回头再一通的爬。
 
  通常在下一次爬的的数据要跟上一次进行比较,假如连续5次都没有变化,那么将爬这个网页的时间间隔扩大1倍。
 
  假如一个网页在连续5次爬取的时候都有更新,那么将设置的爬取时间缩短为原来的1/2。
 
  注重,效率是取胜的要害之一。
 
  4)爬的深度是多少呢?
 
  看情况了。假如你比较牛,有几万台服务器做网络爬虫,我劝您跳过这一点。
 
  假如你同我一样只有一台服务器做网络爬虫,那么这样一个统计您应该知道:
 
  网页深度:网页个数:网页重要程度
 
  0 : 1 : : 10
 
  1 :20 : :8
 
  2: :600: :5
 
  3: :2000: :2
 
  4 above: 6000: 一般无法计算
 
  好了,爬到三级就差不多了,再深入一是数据量扩大了3/4倍,二是重要度确下降了许多,这叫做“种下的是龙种,收获的是跳蚤。
 
  5)爬虫一般不之间爬对方的网页,一般是通过一个Proxy出去,这个proxy有缓解压力的功能,因为当对方的网页没有更新的时候,只要拿到 header 的 tag就可以了,没有必要全部传输一次了,可以大大节约网络带宽。
 
  apache webserver里面纪录的 304 一般就是被cache的了。
 
  6)请有空的时候照看一下robots.txt
 
  7)存储结构。
 
  这个人人见智,google 用 gfs 系统,假如你有7/8台服务器,我劝你用NFS系统,要是你有70/80个服务器的话我建议你用afs 系统,要是你只有一台服务器,那么随便。
 
  给一个代码片断,是我写的新闻搜索引擎是如何进行数据存储的:
 
  NAME=`echo $URL  perl -p -e 's/([^/w/-/./@])/$1 eq "/n" ? "/n":sprintf("%%%2.2x",ord($1))/eg'`mkdir -p $AUTHOR
 
  newscrawl.pl$URL--user-agent="news.booso.com ( http://booso.com)"-outfile=$AUTHOR/$NAME
 
 
  非凡是注重以下几句:
 
  1.通常在下一次爬的的数据要跟上一次进行比较,假如连续5次都没有变化,那么将爬这个网页的时间间隔扩大1倍,假如一个网页在连续5次爬取的时候都有更新,那么将设置的爬取时间缩短为原来的1/2。
 
  网页更新频度严重影响着搜索引擎蜘蛛程度对网站的爬行,爬取次数越多意味着网页收录几率会越大、收录数量越多,收录是SEO最基础的一个环节。

(编辑:财气旺网 - 海宁网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!