2015-09-06 115 views
-1

我一直在尝试抓取网站并从中获取一些数据。我想抓取的网页是这一个: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(); 
    } 

任何关于如何从表中获取数据的建议将不胜感激!

回答

1

或者:

  1. 运行就是这样加载数据,或
  2. 看看网络请求的页面做,看看你是否可以直接请求数据页面上的JS。

请注意,#2可能违反网站的服务条款。

0

使用Google Chrome右键单击表格并选择“检查元素”,数字实际上存在于html中。为了从页面中提取某些数字,通常使用像Jsoup这样的库是很有用的,这样您就可以基于html页面的结构提取文本。

+0

不太正确;检查元素检查* DOM *,而不是原始请求发送的HTML。表格内容是动态加载的,这意味着它们不可用,直到页面的DOM准备好的JS已经触发并实际加载表格。 JSoup不会帮助。 –

+0

这是否意味着无法以某种方式使用java读取它们? –