`
lzj0470
  • 浏览: 1292085 次
  • 性别: 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框架为基础,...

    python3爬虫教程,本书增加了很多前沿的爬虫相关技术 从爬虫入门到分布式抓取,本书详细介绍了爬虫技术的各个要点,并针对不同场景提出了不同的解决方案

    本书内容详实,涉及了网络爬虫的方方面面,包括但不限于爬虫的基本概念、工作原理、开发环境、常用的爬虫框架和库、动态网页的爬取、反爬虫策略、验证码识别、分布式爬虫设计、以及面对不同应用场景的具体解决方案。...

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

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

    基于Python的src-spider2多产品爬虫服务设计源码

    Python作为一门高效且功能强大的编程语言,在网络爬虫领域...通过分析和运行源码,用户不仅能够掌握爬虫的设计思想和技术要点,还能够学习如何将网络爬虫应用到实际的数据抓取任务中,进一步提高数据处理和分析的能力。

    基于Python语言的爬虫课程设计源码讲解

    本课程设计项目基于Python语言,为学生提供了一个实践爬虫技术的平台,通过源码讲解的方式帮助学习者掌握爬虫开发的核心要点。 项目中包含的41个文件,涵盖了从项目结构设置、代码编写到结果展示的各个方面。其中,...

    用python编写网络爬虫.docx

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

    文章增加了很多前沿的爬虫相关技术 从爬虫入门到分布式抓取,本书详细介绍了爬虫技术的各个要点,并针对不同场景提出了不同的解决方案

    它不仅解释了分布式爬虫的工作机制,还提供了从设计到部署的完整解决方案。书中还探讨了在分布式环境下如何有效地管理和调度大量的爬虫任务,保证数据抓取的高效性和稳定性。这一部分对于希望提升爬虫性能、进行大...

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

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

    百度ajax爬虫.zip

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

    分布式爬虫

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

    一些简单的爬虫代码00

    这个文件可能包含了基本的爬虫设计思路和实现方法,为初学者提供了入门级别的材料。 从文件名称“python-crawler-master”可以看出,这个压缩包文件包含了关于Python语言的爬虫程序。虽然文件标签上标注的是“JAVA...

Global site tag (gtag.js) - Google Analytics