我正在学习python,我正在抓reddit。不知怎的,reddit已经发现我是一个机器人(我的软件实际上是这个),但是他们怎么知道呢?我们如何欺骗他们认为我们是普通用户。
我找到了实用的解决方案,但我要求更深入的理论理解。
互联网服务提供商使用大量技术来检测和打击机器人和刮刀。所有这些的核心是建立启发式和统计模型,以识别非人类行为。事情如:
User-Agent
标头,以帮助服务器识别其供应商,版本和其他信息。结合其他标头,服务器可能能够发现请求来自未知或其他利用来源。还有很多技术。想象一下,你是试图检测和阻止机器人活动的人。您将采取哪些方法来确保请求来自人类用户?您如何定义人类行为而不是机器人行为,以及您可以使用哪些指标来辨别这两者?
还有一个实用性的问题:一些方法成本更高,难以实施。那么问题将是:您需要检测和阻止机器人活动的程度(如何可靠)?你是在打击机器人试图入侵用户帐户吗?或者你只是需要阻止它们(可能以最好的方式)从其他公开可见的网页中抓取一些数据?在假阴性和假阳性检测的情况下你会做什么?这些问题告诉您可能采取的识别和阻止机器人活动的方法的复杂性和独创性。