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

10-09 16:50
查看更多