【发布时间】:2012-02-08 20:58:48
【问题描述】:
我正在开发一个简单的应用程序以从网站中提取一些货币转换,这时我收到一条错误消息(如下),指出他们没有自动提取政策。
禁止自动提取
禁止自动提取我们的内容。见http://www.xe.com/errors/noautoextract.htm。
我并没有真正打算违反他们的政策,但我很好奇他们是如何判断的。谁能赐教?
【问题讨论】:
我正在开发一个简单的应用程序以从网站中提取一些货币转换,这时我收到一条错误消息(如下),指出他们没有自动提取政策。
禁止自动提取
禁止自动提取我们的内容。见http://www.xe.com/errors/noautoextract.htm。
我并没有真正打算违反他们的政策,但我很好奇他们是如何判断的。谁能赐教?
【问题讨论】:
1) 用户代理
2) 引入 Javascript 弹出窗口。类似于Click OK to enter。
3) 如果您不在 NAT 之后,则计算来自特定 IP 地址的请求/小时数。
如需了解更多详情,请查看 asheesh laroia 的 Pycon 演讲 web-strategies-for-programming-websites-that-don-t-expected-it。
也可以看看A Standard for Robot Exclusion。
一些网站也使用
4) 验证码和重新验证码
5) 重定向,这意味着您需要添加 HTTP Referrer 才能获取数据。
【讨论】:
通过实现Robot Exclusion protocol,在 HTTP 服务器级别完成。
机器人排除标准,也称为机器人排除标准 协议或 robots.txt 协议,是防止 合作网络爬虫和其他网络机器人访问所有或 以其他方式可公开查看的网站的一部分。机器人是 经常被搜索引擎用来对网站进行分类和存档,或者 由网站管理员校对源代码。
【讨论】:
我认为他们至少观察两个参数:
【讨论】:
基本上,如果您请求一个 URL 并返回 HTML 页面,那么网站几乎无能为力 - 嗯,这正是网络服务器的用途。
但是有几个techniques 可以阻止机器人,而不是人类请求页面。其中一些是对“行为”的机器人的提示,另一些则试图检测机器人并阻止它。
【讨论】: