首页 文章

抓取整个网络的指南?

提问于
浏览
29

我只是想到了这个想法,并想知道是否可以在一个专用服务器上抓取整个网络(就像大男孩一样!)(如Core2Duo,8gig ram,750gb磁盘100mbps) .

我已经看过一篇论文,这篇论文已经完成......但我不记得这篇论文的 Headers 了 . 它就像是使用一些统计模型在单个专用服务器上爬行整个网络 .

无论如何,想象一下从大约10,000个种子URL开始,并进行详尽的爬行....

可能吗 ?

我需要爬网,但仅限于专用服务器 . 我怎么能这样做,那里有一个开源解决方案吗?

例如,看到这个实时搜索引擎 . http://crawlrapidshare.com结果非常好并且刚刚更新......他们是怎么做到的?

8 回答

  • 0

    爬网是简单的 conceptually . 将Web视为一个非常复杂的有向图 . 每个页面都是一个节点 . 每个链接都是有向边 .

    你可以假设一个精心挑选的起点最终将导致所有其他点(最终) . 这赢了't be strictly true but in practice I think you' ll发现它大多是真的 . 仍有机会你需要多个(可能是数千个)起点 .

    您需要确保不要遍历同一页面两次(在一次遍历中) . 在实践中,遍历将花费很长时间,这只是一个问题,即你回到特定节点之前多久以及你如何检测和处理变化(这意味着你第二次来到一个页面它可能已经改变了) .

    杀手将是您需要存储多少数据以及一旦获得它就想要用它做什么 .

  • 0

    我相信你所指的论文是“IRLbot:扩展到60亿页以上” . 这是由Texas A&M的学生编写的单个服务器网络爬虫 .

    撇开带宽,磁盘空间,爬行策略,robots.txt / politeness等问题 - 我得到的主要问题是“为什么?”对整个Web进行爬网意味着您正在使用来自数百万个Web服务器的共享资源 . 目前,大多数网站管理员都允许机器人抓取它们,只要它们玩得很好并遵守礼貌抓取的隐式和明确规则 .

    但是,除了大男孩(谷歌,雅虎,必应等)之外,每个大型机器人都会在没有明显好处的情况下摧毁一个网站,导致几个网站关闭了大门 . 因此,你真的想在花费太多时间研究方法之前问问题 .

    假设您确实需要在单个服务器上抓取大部分Web,那么您需要获得更胖的管道,更多的存储空间(例如假设每页2K压缩文本,因此1B页面为2TB),批次更多RAM,至少4个真实核心等.IRLbot论文将是您最好的指南 . 您可能还想查看crawler-commons项目以获取可重用的Java代码块 .

    最后要小心谨慎 . 一个无辜的错误很容易引发一个网站的问题,那时你将成为一个愤怒的网站管理员火焰的接收端 . 所以要确保你有厚厚的皮肤:)

  • 6

    很抱歉,经过这么长时间才恢复这个线程,但我只是想指出,如果你只是需要一个非常大的网络数据集,那么获得它的方法要比用一个单独尝试抓取整个网页更容易 . server:只需下载Common Crawl project提供的免费抓取数据库 . 用他们的话说:

    我们构建并维护一个可以被任何人访问和分析的Web爬网数据的开放存储库 .

    截至今天,他们的数据库大小为PB级,包含数十亿页(数万亿条链接) . 只需下载它,并执行您感兴趣的任何分析 .

  • 20

    Bloom过滤器用于检测您去过的地方 .

    会有误报,但你可以通过实现多个Bloom过滤器并旋转添加Bloom过滤器并创建一个令人印象深刻的过滤器来解决这个问题 .

    http://en.wikipedia.org/wiki/Bloom_filter

  • 2

    我打赌这是可能的 . 您只需要一个量子CPU和量子RAM .

    说真的,单个服务器无法赶上整个网络的增长 . 谷歌使用了一大堆服务器(数十个,如果不是数十万个),它无法为您提供即时索引 .

    我想如果你真的需要抓狂的结果 . 而不是关注"how to crawl the web",而是关注"how to extract the data you need using Google" . 一个很好的起点是:Google AJAX Search API .

  • 7

    看到这个替代解决方案,取决于您要查看的数据(即使可能):http://searchenginewatch.com/2156241

    ...编辑:另外,不要忘记,网络一直在变化,所以即使是相对较小规模的抓取操作(如分类网站聚合来自众多来源的列表)也会在一个周期中刷新它们的爬行,比如24 - 小时循环 . 那时网站所有者可能会或可能不会因您的抓取工具加载到服务器上的负载而感到不便 . 然后根据您使用已抓取内容的方式,您需要重复数据删除才能进行思考,因为您需要教会您的系统识别昨天的抓取结果是否与今天的抓取结果不同等等......变得非常模糊“,更不用说所需的计算能力了 .

  • 2

    听起来可能,但两个真正的问题将是网络连接和硬盘空间 . 作为一个对网络爬行几乎一无所知的人,我会从几TB的存储开始,随着我收集更多信息和良好的宽带互联网连接而努力工作 . 深口袋是必须的!

  • 3

    我只是想知道整个互联网应该大于750 GB . 此外,用于索引Web的数据结构也需要大量存储 .

相关问题