为什么我应该使用用户代理访问 url?
Why should I access a url using a User Agent?
我有一个与 this question 类似的代码。在接受的答案中扩展代码对我也有用。
这一次之前,我一直使用这种类型的代码,从未遇到过任何异常情况。
现在,我的问题是:
- 为什么要使用 USER AGENT?
- 为什么有必要在我的程序中使用?
是不是每个程序都要用到?
- 如果有,我的程序怎么运行以前那么好?
- 如果没有,为什么我现在必须处理这个?
- 字符串
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
是如何生成的? (我想知道确切的格式)。
注意:
我修复它的程序,我每天都在使用它,但以前从未有过任何问题。
许多网络管理员希望阻止机器人访问他们的网站,因为他们所做的是定期抓取数据,但所有者无法从这些点击中赚取任何广告收入。所以没有明显的好处,但他们继续使用资源。出于这个原因,他们会阻止任何看起来不像人类使用的浏览器的东西。如您所见,让您的程序伪装成另一个程序是完全微不足道的。所以这种技术对任何知道自己在做什么的人都无效。不过,总的来说,不假装自己不是的人被认为是有礼貌的(网络礼仪)。
用户代理字符串在技术上可以是您想要的任何内容,但大多数应用程序都遵循一种常见的模式,例如 $product/$version
。你可以看到一些例子 here.
有关详细信息,请查看有关此事的 wikipedia article。
如此快速的总结:
- 你应该使用它,因为服务器希望所有客户端都有一个
- 图书馆可能有一个默认的用户代理(例如
JavaLib/1.1
),但由于上述原因,您必须自己设置。
- 并非所有程序都需要,但伪装成浏览器对机器人很有用。请记住,这被认为是不礼貌的。例如,wget 对我来说 99% 的时间无需修改,但有些网站会阻止其用户代理。
- 字符串未生成,它只是从现有浏览器(在本例中为 IE 6.0)复制而来。您正在连接的服务器似乎接受它。
我有一个与 this question 类似的代码。在接受的答案中扩展代码对我也有用。
这一次之前,我一直使用这种类型的代码,从未遇到过任何异常情况。
现在,我的问题是:
- 为什么要使用 USER AGENT?
- 为什么有必要在我的程序中使用?
是不是每个程序都要用到?
- 如果有,我的程序怎么运行以前那么好?
- 如果没有,为什么我现在必须处理这个?
- 字符串
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
是如何生成的? (我想知道确切的格式)。
注意:
我修复它的程序,我每天都在使用它,但以前从未有过任何问题。
许多网络管理员希望阻止机器人访问他们的网站,因为他们所做的是定期抓取数据,但所有者无法从这些点击中赚取任何广告收入。所以没有明显的好处,但他们继续使用资源。出于这个原因,他们会阻止任何看起来不像人类使用的浏览器的东西。如您所见,让您的程序伪装成另一个程序是完全微不足道的。所以这种技术对任何知道自己在做什么的人都无效。不过,总的来说,不假装自己不是的人被认为是有礼貌的(网络礼仪)。
用户代理字符串在技术上可以是您想要的任何内容,但大多数应用程序都遵循一种常见的模式,例如 $product/$version
。你可以看到一些例子 here.
有关详细信息,请查看有关此事的 wikipedia article。
如此快速的总结:
- 你应该使用它,因为服务器希望所有客户端都有一个
- 图书馆可能有一个默认的用户代理(例如
JavaLib/1.1
),但由于上述原因,您必须自己设置。 - 并非所有程序都需要,但伪装成浏览器对机器人很有用。请记住,这被认为是不礼貌的。例如,wget 对我来说 99% 的时间无需修改,但有些网站会阻止其用户代理。
- 字符串未生成,它只是从现有浏览器(在本例中为 IE 6.0)复制而来。您正在连接的服务器似乎接受它。