使用 Java 连接到 Google 时出现 403 Forbidden
尝试使用 Java 连接到 Google 并检索信息时,您可能会遇到 403 Forbidden错误,尽管相同的请求在 Web 浏览器中成功。以下是原因以及解决方法:
Java 不会自动设置浏览器用来识别自身身份的“User-Agent”标头。这可能会在使用此标头确定请求合法性的网站上触发 403 错误。要解决此问题,请手动设置“User-Agent”标头,如下所示:
URLConnection connection = new URL("https://www.google.com/search?q=" + query).openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
此外,处理响应需要进一步的步骤来模拟浏览器行为,包括获取 cookie、解析重定向令牌链接以及提取所需的信息。下面是修改后的代码:
String cookie = connection.getHeaderField("Set-Cookie").split(";")[0]; ... if (m.find()) { long amount = Long.parseLong(m.group(1).replaceAll(",", "")); return amount; }
经过这些调整,Java 代码应该能够成功从 Google 检索搜索结果量。
以上是为什么使用 Java 连接 Google 时会收到 403 禁止错误?的详细内容。更多信息请关注PHP中文网其他相关文章!