运行一个爬虫(网络爬虫)以查找特定内容。

4

首先,我不知道这是否是发布此问题的正确位置。如果不是,我很抱歉 :)

我在考虑编写一个爬虫程序,对网络进行爬取以查找特定的嵌入式文件。

但是,我想知道是否允许运行爬虫程序,因为它会以快速的速度发出许多请求。

还是应该在请求中加入一些延迟时间?

我已经阅读了我的ISP合同,但是没有找到有关爬虫程序的具体信息。

2个回答

2
你可以看一下 wget。它有一些有用的想法。你应该注意想抓取的网站上的 ROBOTS.txt。而且你应该在请求之间留出一个延迟,以免创建拒绝服务条件。

从外观上看,它似乎是使用wget下载文件以供离线使用。我只想索引它而不是下载它。我的发现正确吗? - PeeHaa
@PeeHaa,您没有说出“特定嵌入式文件”的含义。如果它们是通过它们的内容进行识别的,您必须下载它们(我假设您无法在服务器上运行代码)。您不一定需要下载整个文件-这取决于服务器的配置方式。REST/HTTP允许部分下载。 - peter.murray.rust
无论它们是什么,我只想在网络上找到并索引它们。 - PeeHaa
“索引”是什么意思?如果你只能按文件名/ URL 对它们进行索引,那就这样做。(我希望wget会允许这样做)。但请记住,如果您依赖文件内的链接来查找下一个文件(这就是爬虫所做的),则必须下载文件。没有魔法。您无法在不阅读文件的情况下从文件中找到链接。而且我不确定您的反对意见是什么。担心数量?那么你不应该写爬虫。如果您担心存储文件,请不要这样做。但是,例如HTML文件,您将不得不阅读文件并在其中查找<a href = .../>。 - peter.murray.rust

1

没有什么能禁止你爬取数据。它与正常用户交互没有区别。如果你打开了一个有很多图片的页面,浏览器会同时发出很多请求。

你可以有传输限制 - 只需注意你下载了多少数据。

你必须考虑的是,爬取大量页面可能被视为 DoS 攻击或被页面运营者禁止。遵守他们的规定。如果他们要求每台计算机每天最多不超过 N 次请求,请尊重它。进行一些延迟以避免阻塞对网站的访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接