我想抓取有用的资源(比如背景图片)。)从某些网站。这不是一项艰苦的工作,特别是在一些出色的项目,如刮刮的帮助下。
这里的问题是,我不仅要爬这个网站一次。我还想让我的爬行长时间运行,并抓取更新的资源。因此,我想知道,有什么好的策略,一个网页爬虫得到更新的网页?
这是我想过的一个粗略的算法。我把爬行过程分成了几个回合。每一轮URL存储库都会为爬虫提供一定数量(比如,10000)的URL来进行抓取。然后下一轮。具体步骤如下:
为了进一步说明这一点,我仍然需要解决以下问题:如何确定网页的“刷新性”,这表示该网页被更新的概率?
由于这是一个尚未解决的问题,希望它将在这里带来一些富有成果的讨论。
发布于 2012-05-18 12:24:27
您描述的“批处理”算法是实现此功能的一种常见方法,我已经用刮痕完成了一些这样的实现。
我采取的方法是初始化您的蜘蛛启动URL,以获得下一批抓取和输出数据(资源+链接)的正常情况。然后,在选择生成下一批时处理这些内容。所有这些都可以并行化,因此有许多蜘蛛同时爬行不同的批,如果您将属于同一站点的URL放在同一批中,那么scrapy将负责礼貌(为您的首选项进行一些配置)。
一个有趣的调整是将调度分为短期(在单个批内,在scrapy内)和长期(在爬行批之间),这给了增量式方法的一些优点,同时保持了一些简单。
你提到的爬行排序问题有很多方法(如何决定“刷新-”),最好的方法取决于你的优先级是什么(新鲜还是全面,资源比其他资源更重要,等等)。
我想推荐这个网页爬行文章由克里斯托弗奥尔斯顿和马克纳约克。这是一个伟大的调查,并涵盖了您感兴趣的主题(批爬行模型和爬虫排序)。
https://stackoverflow.com/questions/2576785
复制相似问题