Java - 如何从网站(非源)检索文本

标签 java bots

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

相关文章:

error-handling - 接受经典ASP页面中的*/*错误

C# Telegram Bot 。获取更新方法

Python IRC 机器人 : Set variables from channel reading

java - 注入(inject)点处带有限定符 @default 的类型不满足依赖关系

java - Hibernate:使用子选择和左外连接执行条件查询?

java - TCP。即使服务器不接受客户端也会连接

java - Eclipse 的 Jess 插件无法工作?并且未安装

Java 约定 : when referring to coordinates, 我是否用 "location"或 "position"命名方法和变量?

seo - 如何让 googlebot 获得正确的 GEOIPed 内容?

Payload 函数的 Python 随机函数不起作用