1

我的想法是使用 wget 创建一个非常大的博客的所有线程的完整列表(根据博客本身的线程总数为 50,000)。我在 --spider 模式下使用 wget 来抓取网站并将网址输出到文本文件中。在 1d 3h 3m 3s wget 完成它的工作后,我发现“只有”9668 个文件与网站上提供的 50,000 个文件相比。根据 wget 643 链接被破坏所以我的第一个想法是检查丢失的线程是否与断开的链接有某种关系,但显然它们不是。该博客将其主题保存在以年和月命名的文件夹中(例如/2012/01/name_of_thread.html)。一些损坏的链接似乎是指 wget 从中下载一些线程的文件夹,因此我将排除所选文件夹的中断。

我从哪里开始了解出了什么问题?

4

1 回答 1

0

有时博客发布/托管平台使用不寻常的 robots.txt 文件,因此可能需要 -e robots=off。我在爬取 WordPress 博客时遇到了类似的问题,其中奇怪的输出被机器人排除所塑造——这与您的问题有些相似。

根据博客的结构,您可能会通过更仔细的抓取获得更好的结果。如果它使用分页(www.site.com/archive/1/、www.site.com/archive/2/...),您可以通过 for 循环抓取每个页面并解析每个页面的内容。这将为您提供更可控的结果,因为您可以针对一小部分数据(例如,一次十页线程)而不是一次所有 50k 线程进行验证和测试。

该网站也可能报告错误的数字 - 您确定应该有 50k 个线程吗?

于 2013-03-20T16:57:53.047 回答