我想用Java(准确地说是java 7)获取页面的内容。 当我使用浏览器进入该网站时,我得到的是关于 cookie、个性化广告等的模式/弹出窗口,当我使用以下示例时,也会发生同样的情况:
URL url = new URL(v1.getUrl());
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
InputStream is = con.getInputStream();
偶然间,我发现使用 Bash 中的 cURL
可以得到网站的“正确”输出。和
curl URL
我在没有此模式的情况下得到响应。当我在 Java 代码中使用 curl
时,也会发生同样的事情:
ArticleExtractor.getInstance().getText(new InputStreamReader(new ProcessBuilder(("curl "+url).split("")).start().getInputStream()))
.
有没有办法不使用curl
并在Java中获得相同的结果?
最佳答案
尝试在 con.setRequestMethod()
之后添加此行。
con.setRequestProperty("User-Agent", "curl/7.65.0");
如果有效,则意味着 HTTP 服务器为 curl
提供的内容与其他浏览器不同。
关于java - 用Java模拟cURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59586048/