2015-12-21 32 views
0

我正在研究通过数据库(特定纽约时报在线数据库http://query.nytimes.com/search/sitesearch/#/McCain/from20061201to20080603/allresults/1/allauthors/oldest/)html代码解析以查找某些关键字的项目,但它从Oracle获取的代码无法获取完整的HTML。我已经能够使用此代码之前的其他项目,所以我不知道为什么它不读取所有的HTML。在Java中获取完整的HTML

谢谢:)

URL oracle = new URL("http://query.nytimes.com/search/sitesearch/#/McCain/from20061201to20080603/allresults/1/allauthors/oldest/"); 
    URLConnection yc = oracle.openConnection(); 
    yc.connect(); 
    BufferedReader in = new BufferedReader(new InputStreamReader(
           yc.getInputStream())); 
    System.out.println(yc.getContentType()); 
    String inputLine; 
    while ((inputLine = in.readLine()) != null) 
     System.out.println(inputLine); 
    in.close(); 
+1

你什么意思“不工作”和“完整的HTML”呢? – pvg

+0

我的意思是我的项目只打印掉部分HTML,并且缺少我想要的HTML部分,我怀疑这是因为该网页正在加载 –

+0

对不起,太模糊了 –

回答

3

纽约时报搜索页面使用网页上的JavaScript来做出它返回的搜索结果为JSON,然后被格式化为HTML的API调用。由于您希望收集数据,因此使用此API可能是您想要的,并且具有无需以结构化,易于处理的格式抓取和返回数据的优势。您将不得不通过使用浏览器的开发工具来了解API的工作原理,或者查看其他人是否记录了它。这里是“富”的简单查询的样子 -

http://query.nytimes.com/svc/add/v1/sitesearch.json?q=foo&spotlight=true&facet=true

+0

非常感谢,但我如何将它设置为在两个不同的日期之间进行查看?我正在寻找它 –

+0

@KevinBender完全是一个完全不同的问题,我想我已经回答了你的第一个问题。 – pvg