`
lzj0470
  • 浏览: 1270904 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

爬虫设计要点

阅读更多

 

http://community.csdn.net/Expert/topic/5696/5696765.xml?temp=.7289392

 

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

分享到:
评论

相关推荐

    搜索引擎Web爬虫

    **爬虫设计要点**: 1. **URL管理**:存储已访问和待访问的URL,防止重复抓取和无限循环。 2. **反爬机制应对**:处理网站的验证码、IP限制、User-Agent限制等,确保爬虫正常运行。 3. **速率控制**:避免对目标...

    基于Web的网络爬虫的设计与实现.pdf

    本文介绍了一种可行的方案,通过详细的页面搜集器和页面索引器设计,展示了爬虫工作的基本流程和技术要点。未来的研究可以进一步优化算法、提升性能,并探索更多智能爬取策略,以适应不断变化的网络环境和用户需求。

    电子商务网站:京东,淘宝,拼多多的爬虫集合.zip

    京东、淘宝和拼多多的爬虫设计要点: 1. **动态加载**:这三个平台的商品页面多采用AJAX技术动态加载,这意味着传统的HTTP请求可能无法获取完整页面内容。因此,爬虫可能需要模拟浏览器行为,如使用Selenium或...

    山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》.rar

    《基于Python的网络爬虫设计》是一门针对山东建筑大学计算机网络课程的实践性学习项目,旨在让学生深入了解网络数据的抓取与处理技术。在这个项目中,学生将使用Python编程语言来构建网络爬虫,从而获取并分析互联网...

    python爬虫课程要点.docx

    【Python爬虫课程要点】 Python爬虫是一种技术,用于自动抓取互联网上的信息。Python语言因为其丰富的库支持,成为了爬虫开发的首选语言。在Python中,`urllib`库是一个重要的网络请求库,它包含了`request`、`...

    基于python的网络爬虫设计.pdf

    综上所述,文档《基于python的网络爬虫设计.pdf》涵盖了从网络请求、数据解析、数据存储到异常处理等多个方面的知识点,全面地展示了利用Python进行网络爬虫设计的过程和技术要点。通过阅读本篇文档,可以为从事网络...

    基于Python专用型网络爬虫的设计及实现.pdf

    总之,基于Python的专用型网络爬虫设计是一个综合性的技术工程,涵盖了编程语言特性、网络编程、数据处理、系统分析与设计等多个领域。随着互联网技术的发展,网络爬虫也在不断地进行着技术革新,以满足人们越来越...

    基于多线程的网络爬虫设计与实现.pdf

    ### 基于多线程的网络爬虫设计与实现 #### 概述 网络爬虫作为一种高效的数据抓取工具,在大数据时代扮演着极其重要的角色。通过对互联网网页内容的自动检索与下载,网络爬虫为数据挖掘、搜索引擎优化等工作提供了强...

    基于Python和Scrapy框架的网页爬虫设计与实现.docx

    【基于Python和Scrapy框架的网页爬虫设计与实现】 网页爬虫是互联网时代数据获取的重要工具,尤其在大数据分析、市场研究、竞争情报等领域,爬虫技术的应用日益广泛。本论文以Python编程语言和Scrapy框架为基础,...

    解析Python网络爬虫:核心技术、Scrapy框架、分布式爬虫全套教学资料

    Python中的分布式爬虫通常基于Scrapy-Redis或Scrapy-Cluster,要点包括: 1. 分布式架构:多台机器协同工作,共享任务队列,处理大规模数据。 2. 数据同步:使用Redis等分布式数据存储,确保不同节点间的任务分配和...

    用python编写网络爬虫.docx

    通过阅读本文,可以了解 Python 在网络爬虫开发中的应用、爬虫设计的要点和 Python 多线程编程的实现方法。 描述 本文的作者最近学习了计算机网络课程,受到启发,决定使用 Python 语言编写一个网络爬虫,以实践所...

    基于JAVA技术爬虫爬网站图片设计与实现(JSP,MySQL)(含录像)(开题报告,毕业论文12000字,程序代码,MySQL数据库,答辩PPT)

    2. **爬虫文档.doc**:可能包含了爬虫的具体实现细节,如爬取策略、数据解析、异常处理等技术要点。 3. **基于JAVA技术爬虫爬网站技术与实现-开题报告.docx**:这是项目的起始阶段文档,通常包含项目目标、研究...

    百度ajax爬虫.zip

    "百度ajax爬虫"是一个专门设计用来抓取百度图片的爬虫程序。在理解这个主题时,我们需要深入探讨几个关键概念:爬虫的基本原理、Ajax技术以及如何应对动态加载的内容。 爬虫,全称网络爬虫或网页蜘蛛,是通过模拟...

    分布式爬虫

    以上是分布式爬虫的基本概念和实现要点,具体实现会根据项目需求和技术选型有所不同。在实际开发过程中,还需要关注代码的可扩展性、维护性以及性能优化等问题。通过不断迭代和优化,我们可以构建出高效、稳定的...

    python爬虫基础课件.pdf

    网络爬虫设计原理遵循计算机网络的协议和网页的HTML结构,它的工作流程大致可以分为:发送请求、获取响应、解析内容、提取数据和存储数据几个步骤。 网络爬虫能够通过制定的规则遍历互联网,而搜索引擎原理则更为...

    红外遥控六足爬虫机器人设计论文(单片机)

    1. **设计要点**:根据机器人的具体应用场景和任务需求,设计合理的机械传动结构,确保机器人能够灵活地完成抓取、搬运等操作。 ##### (五)机器人的心脏 —— 电池 1. **选择标准**:考虑机器人的整体功耗、重量...

    基于Java的新浪微博爬虫研究与实现.pdf

    1. 网络爬虫的设计原理:研究团队通过分析微博平台的特点,设计了一套适应性更强的网络爬虫系统,实现高效的数据采集。 2. Java编程技术应用:该系统基于Java语言开发,利用Java在多线程处理、网络编程等方面的优势...

    网络爬虫技术讲义 非常有意思的非技术文档

    综上所述,这份非技术文档提供了对网络爬虫技术的全面理解,不仅涵盖了基本原理和技术要点,还涉及了实际应用中的策略和注意事项,对于希望深入了解并掌握网络爬虫技术的人来说是一份宝贵的资料。

    基于P2P的分布式主题爬虫系统的设计与实现

    #### 三、系统设计与实现要点 1. **模块化设计**:系统应采用模块化设计,将爬虫功能、数据分析、资源调度等功能分离,便于系统的扩展和维护。 2. **通信协议标准化**:制定统一的通信协议,确保不同节点间的信息...

Global site tag (gtag.js) - Google Analytics