java - 在java中使用Scanner进行网页抓取

标签 java java.util.scanner

我应该使用 URL 和扫描仪类进行网页抓取,并从网站上的 HTML 代码中仅挑选出过去 8 天内的能源消耗数量。所以我有一个 24x8 的数组来容纳所有数字。我使用 .findInLine 来识别小时 ex: 我在这里使用第一部分来标识第一个小时的数字 block 。

while (in.findInLine("00-01") == null) in.nextLine();
in.nextLine() // skip rest of the line containing "00-01"

<td>00-01</td>
<td align="right"> 11872</td>
<td align="right"> 12146</td>
<td align="right"> 12861</td>
<td align="right"> 12561</td>
<td align="right"> 13493</td>
<td align="right"> 13386</td>
<td align="right"> 12732</td>
<td align="right"> <b>12249</b></td>

我的问题是我不知道如何提取这些数字并将它们放入数组中,因为我有 24 个这样的部分。

最佳答案

给定输入,以下内容将提取每行的数字。

  Pattern pattern = Pattern.compile("\\d+");
    while (in.hasNext())
    {
      String str = in.nextLine();
      Matcher m = pattern.matcher(str);
      while (m.find())
      {
        //Change this to add to add to an array
        System.out.println(m.group());           

      }
    }

关于java - 在java中使用Scanner进行网页抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54822701/

相关文章:

java - 如何重定向到网络中心站点中的页面

java - Android:onConnectionToInternet

java - 使用星号字符作为 Java 扫描器分隔符

java - 想要从文件扫描的行中获取单独的标记。 java

java - 如何使用扫描仪用 token 做不同的事情

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 我们可以在java中的多级继承中从第二个子类调用父类(super class)构造函数吗

java - 即使其中一个条件为真,为什么这个 boolean 值输出为假?

java - 传递输入后丢失字符串中的数据

java - NotFoundAction.EXCEPTION 不抛出异常