在抓取网站时无法获取所有数据

时间:2015-09-06 14:55:40

标签: java html web-crawler webpage

我一直在尝试抓取网站并从中获取一些数据。我要抓取的网页就是这个:http://www.oddsportal.com/soccer/england/premier-league/everton-chelsea-4tRin4kn/ 我特别感兴趣的是在页面中间的表格中获取数字。我尝试通过打印html代码以最基本的方式抓取它,然后我的想法是在html中搜索数字并将它们保存在文件中。问题是我无法在html中找到这些数字。即使我在浏览器中打开它并点击显示源代码,我仍然无法找到它们。这是我正在使用的代码。

  private static String getUrlSource(String url) throws IOException {
        URL yahoo = new URL(url);
        URLConnection yc = yahoo.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(
                yc.getInputStream(), "UTF-8"));
        String inputLine;
        StringBuilder a = new StringBuilder();
        while ((inputLine = in.readLine()) != null)
            a.append(inputLine);
        in.close();

        return a.toString();
    }

关于如何从表中获取数据的任何建议都将非常感谢!

2 个答案:

答案 0 :(得分:1)

或者:

  1. 运行加载数据的页面上的JS,或
  2. 查看页面发出的网络请求,看看您是否可以直接请求数据。
  3. 请注意,#2可能会违反网站的服务条款。

答案 1 :(得分:0)

使用谷歌浏览器右键单击表并选择“检查元素”,数字实际上在html中。要从页面中提取某些数字,使用像Jsoup这样的库通常很有用,这样您就可以根据html页面的结构提取文本。