我想用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/