`
icheng
  • 浏览: 830481 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

下面简单介绍一下搜索引擎的机器爬虫的制作和一些基本要注意的事项。

说的简单易懂一些,网络爬虫跟你使用的〖离线阅读〗工具差不多。说离线,其实还是要跟网络联结,否则怎么抓东西下来?那么不同的地方在哪里?

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




--------------------------------------------------------------------------------


以上转载的是一篇关于搜索引擎网络爬虫(即搜索引擎蜘蛛程序)的设计分析的文章,介绍了一些蜘蛛设计的常识,这些信息对SEO都很有帮助,特别是注意以下几句:

1.通常在下一次爬的的数据要跟上一次进行比较,如果连续5次都没有变化,那么将爬这个网页的时间间隔扩大1倍,如果一个网页在连续5次爬取的时候都有更新,那么将设置的爬取时间缩短为原来的1/2。

网页更新频度严重影响着搜索引擎蜘蛛程度对网站的爬行,爬取次数越多意味着网页收录几率会越大、收录数量越多,收录是SEO最基础的一个环节。

2.好了,爬到三级就差不多了,再深入一是数据量扩大了3/4倍,二是重要度确下降了许多,这叫做“种下的是龙种,收获的是跳蚤。

尽量将网站保持在三级目录内,深层次的网页会给搜索引擎带来很大的压力,当然,我想Google有足够的服务器来承担这些压力,但从侧面来说,3层目录下的网页被抓取及更新的频度要低很多。前面,我说过,要想办法使网站物理结构和逻辑结构吻合,这体现于URL的良好设计,现在你可以检查下前台生成的静态网页的实际目录有几层,考虑是否可以优化。
关于网站逻辑结构和URL设计,请参考“网站内部链接优化是SEO的第一要素”和“二级域名与一级目录之间该如何选择?”

<!--Here is the bottom-->

分享到:
评论

相关推荐

    网站日志蜘蛛在线分析工具源码 日志可视化管理工具源码 快速分析搜索引擎网络爬虫抓取记录.rar

    网站日志蜘蛛在线分析工具源码 日志可视化管理工具源码 快速分析搜索引擎网络爬虫抓取记录 如果是 linux 宝塔面板 的服务器自然环境,大家登陆宝塔面板linux控制面板后,点一下左边“文件”,在www下的wwwlogs文件...

    Python网络爬虫的设计与实现

    本课题的主要目的是设计面向定向网站的网络爬虫程序,同时需要满足不同的性能要求,详细涉及到定向网络爬虫的各个细节与应用环节。 搜索引擎作为一个辅助人们检索信息的工具。但是,这些通用性搜索引擎也存在着一定...

    搜索引擎的分析与程序设计,网络爬虫抓URL的原理,基于C#

    搜索引擎的分析与程序设计,网络爬虫抓URL的原理,基于C#.

    基于python的聚焦网络爬虫数据采集系统设计与实现

    众所周知,搜索引擎从互联网中靶向性筛选出有 用信息,而网络爬虫又是搜索引擎的基础构件之一。本文实现了一个基于 python 语言的聚焦网络爬虫,利用关键字匹配技术对目 标网站进行扫描,得到所需数据并抓取。

    分布式网络爬虫的设计与实现应用分析文档.docx

    分布式网络爬虫的设计与实现应用分析文档.docx 随着互联网网络规模的爆炸性增长,相关的服务和信息量也随之快速增长,集中式网络爬虫信息采集的速度已经无法满足快速获取大量数据的需求。分布式网络爬虫由可并行获取...

    一种新型网络爬虫的设计与实现

    网络爬虫是当今网络实时更新和搜索引擎技术的共同产物。文中深入探讨了如何应用网络爬虫技术实现实时更新数据和搜索引擎技术。在对网络爬虫技术进行深入分析的基础上,给出了一种用网络爬虫技术实现局域网内服务器和...

    基于网络爬虫的搜索引擎设计与实现-毕业设计论文

    本文从搜索引擎的应用出发,探讨了网络蜘蛛在搜索引擎中的作用和地住,提出了网络蜘蛛 的功能和设计要求。在对网络蜘蛛系统结构和工作原理所作分析的基础上,研究了页面爬取、解析等策略和算法,并使用Java 实现了一...

    人工智能-项目实践-搜索引擎-搜索引擎分析与设计 - 网络小说搜索 协同过滤

    搜索引擎分析与设计 - 网络小说搜索 协同过滤 搜索引擎分析与设计 - 网络小说搜索 协同过滤 Python 爬虫 Web 搜索相似小说,搜索目标类型小说,个人推荐榜单

    网络爬虫案例分析.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    基于Python的网络爬虫课程设计

    网络爬虫是从web中发现,下载以及存储内容,是搜索引擎的核心部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定...

    VC++网络爬虫

    本课题提出了基于VC++的网络爬虫的设计,实现原理为:应用socket编程技术和多线程技术在网络上抓取网页,使用正则表达式对抓取的网页内容进行分析,从中提取出用户所需的信息,使用宽度优先搜索算法访问页面中的所有...

    C++网络爬虫项目

    搜索引擎的信息源来自于互联网网页,通过“网络爬虫” 将整个“互联网” 的 信息获取到本地,因为互联网页面中有相当大比例的内容是完全相同或者近似 重复的,“网页去重”模块会对此做出检测,并去除重复内容。 在...

    论文爬虫搜索引擎.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    网络爬虫调研报告.docx

    而Lucene只是个搜索引擎工具,它提供API接口,通过编写程序对信息进行索引和检索,在其后台需要网络爬虫程序的支持,其目的是通过网络爬虫软件抓取网页,作为提供给Lucene搜索引擎的资源,进行索引和查询。...

    项目实战:多线程网络爬虫与Elasticsearch新闻搜索引擎.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    ES的搜索引擎的设计与实现源码.zip

    本系统以SpringBoot基础框架整合其他技术设计和搭建而成,选用webmagic框架实现单节点的网络爬虫系统,爬虫的生命周期为链接提取、页面下载、内容抽取、持久化,多线程抓取,Redis队列和集合实现网页去重和增量抓取...

    猫头鹰搜索引擎,爬虫,分词,索引,搜索.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

Global site tag (gtag.js) - Google Analytics