【发布时间】:2017-11-14 18:15:29
【问题描述】:
我目前正在使用 java apache commons 构建一个网络蜘蛛。我正在抓取基本的谷歌搜索查询,例如https://google.com/search?q=word&hl=en
不知何故,在大约 60 次查询后我被阻止了,他们似乎将我识别为机器人并且我收到了 503 Service Unavailable 响应
现在是重要的部分: 如果我使用 firefox/chrome 访问同一个站点,我会得到想要的结果。 如果我使用相同的 http 标头(用户代理、cookie、缓存等)向我的应用程序发出 GET 请求,我仍然被阻止。
当只有 IP 和 HTTP 标头作为信息时,Google 如何知道我是通过应用程序连接还是通过 Chrome 浏览器连接?(也许我错了?) 是否有更多参数可以识别我的应用程序?谷歌看到而我没有看到的东西?
(也许很重要:我正在使用 Chrome 开发者工具和 httpbin.org 来比较浏览器和应用程序的标题。)
非常感谢
【问题讨论】:
标签: java http https web-crawler apache-commons-httpclient