java - Java 中抓取 html 页面源代码的问题

标签 java html

我正在尝试抓取网站的 html 页面源代码来获取电子邮件。当我运行 Ripper/dumper 或任何你想调用的东西时,它会获取所有源代码,但停在第 160 行,但我可以手动转到网页>右键单击>单击查看页面源代码,然后解析文本。整个源代码只有200多行。手动转到每个页面并右键单击的唯一问题是页面数量超过 100k,并且需要一段时间。

这是我用来获取页面源的代码:

    public static void main(String[] args) throws IOException, InterruptedException {

    URL url = new URL("http://www.runelocus.com/forums/member.php?102786-wapetdxzdk&tab=aboutme#aboutme");
    URLConnection connection = url.openConnection();

    connection.setDoInput(true);
    InputStream inStream = connection.getInputStream();
    BufferedReader input = new BufferedReader(new InputStreamReader(
            inStream));

    String html = "";
    String line = "";
    while ((line = input.readLine()) != null)
        html += line;
    System.out.println(html);
    }

最佳答案

如果您尝试抓取 HTML 页面的内容,则不应使用这样的原始连接。使用现有库:HTML Unit是一种非常常用的方法。

您传入 URL,它会为您提供一个表示页面的对象,然后您将所有 HTML 标记作为对象获得(例如,您获得元素的 Div 对象、元素的 HTMLAnchor 对象等)。使用 HTML Unit 等现有框架并读取页面内容将使您的生活变得更加轻松。

您还可以进行搜索(例如,elementById、elementByTagName、按属性等),这使得在给定预先确定的页面标记的情况下更容易在文档中跳转。

您还可以根据需要模拟点击等操作。

关于java - Java 中抓取 html 页面源代码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396553/

相关文章:

java - JFreeChart如何绘制具有紧密间隔的点的虚线

javascript - 如何让CSS3动画在动画完成后保持其位置?

php - 付款后如何定义 redirect_to url?

java - 如何查看 Apache Derby 是否已安装并正在运行?

java - 在 Java 中增量更改字符串中的数字

java - 强制 BigDecimals 使用科学记数法

html - flex 包装 : nowrap with row and column

html - 我的媒体查询不起作用

html - 如何下载文件夹中A列的所有链接?

java - 修改 JSF 代码时 session 如何保持打开状态?