网页抓取数据(分布式抓取和存储,的使用方法)
优采云 发布时间: 2021-12-28 17:08网页抓取数据(分布式抓取和存储,的使用方法)
所以,首先我不用担心进入分布式爬取和存储,因为顾名思义:它需要相当数量的机器才能得到好的结果。除非您拥有计算机农场,否则您不会真正受益。可以搭建爬虫网程序。
列表中的下一件事是确定您的瓶颈在哪里。
对您的系统进行基准测试
尝试消除MS sql:
加载要抓取的 1000 个 URL 的列表。
测试你能多快抓住它们。
如果 1,000 个 URL 不能给你足够大的抓取,你可以得到 10,000 个 URL 或 100k 个 URL(或者如果你觉得勇敢,你可以得到它)。无论如何,尝试建立一个基线,其中排除尽可能多的变量。
识别瓶颈
抓到爬行速度的底线后,试着确定自己速度变慢的原因。此外,您将需要开始使用多任务处理,因为您已经绑定并且您正在获取可用于提取链接和执行其他操作的数据。其他操作的页面之间有很多空闲时间。
你现在每秒想要多少页?您应该尝试每秒获取 10 页以上的数据。
加速
显然,下一步就是尽可能调整你的爬虫机制:
> 尝试加速您的爬虫以达到带宽等硬性限制。
我推荐使用异步套接字,因为它们比阻塞套接字、WebRequest/HttpWebRequest 等更快。
> 使用更快的 HTML 解析库:从一开始,如果感觉比尝试使用它更勇敢。
使用,而不是sql数据库,利用key/value存储(对URL的key进行hash,作为value存储HTML等相关数据)。
去专业!
如果你已经掌握了以上所有内容,那么我建议你尝试接吻!重要的是你有一个很好的选择算法来模拟 PageRank 以平衡新鲜度和覆盖率:。如果您拥有上述工具,那么您应该能够实现 OPIC 并运行一个相当快的爬虫。
如果你对编程语言灵活,又不想背离C#,可以试试基于Java的企业爬虫(eg)。Nutch 与 Hadoop 和其他各种高度可扩展的解决方案集成。