如果我请求如下URL谷歌服务器如何区分浏览器和HtmlUnit?
http://www.google.com/recaptcha/api/noscript?k=MYPUBLICKEY
我将获得验证码的老无脚本版本的谷歌街景数包含图像,这样
但是,如果我会做与HtmlUnit
相同我会得到一些伪造版本的图像,像这样:
它总是发生:来自浏览器的真实世界街道号和来自HtmlUnit
的黑色扭曲文本。公钥是一样的。
Google服务器如何区分浏览器和HtmlUnit?
的代码的HtmlUnit是如下:
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17);
final HtmlPage page = webClient.getPage("http://www.google.com/recaptcha/api/noscript?k=" + getPublicKey());
HtmlImage image = page.<HtmlImage>getFirstByXPath("//img");
ImageReader imageReader = image.getImageReader();
过程是可观察到的使用Fiddler。
最有可能的用户代理http标头。 – 2015-04-02 12:16:02