我想使用 java 从网站检索文本。我可以通过以下方式轻松获取来源:(感谢随机的互联网人在其他地方发布了此内容)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class WebCrawler{
public static void main(String[] args) {
try {
URL google = new URL("http://stackoverflow.com");
URLConnection yc = google.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
然而,这给我带来了一些网站返回 403 的问题。有办法解决这个问题吗?
很简单,我希望使用 java 创建一个简单的机器人,它可以扫描论坛线程并根据用户查询自动响应。我可以在java中做到这一点吗?或者我需要从另一种语言/数据检索方法的角度来看待它?
感谢您的宝贵时间。
最佳答案
是的,这可以用 Java 完成。从理论上讲,Web 浏览器可以做的任何事情,Java 都可以做 - 因为在最坏的情况下,您可以用 Java 编写一个 Web 浏览器。
403 是“禁止”响应。您可能需要设置特定的 User-Agent
header ,或者站点可能需要 HTTP 基本身份验证。或者也许它限制了您的速率,您需要遵守他们的 robots.txt
规则...
(在我看来)Java 当然不是编写此类代码的最简单语言,但您已经走在了正轨上。
至于标题中的“非来源” - 网页的来源是其文本。如果您下载该页面,您将获得 HTML;由你来解析你需要的东西并丢弃糟粕。
关于Java - 如何从网站(非源)检索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9074771/