使用Casparjs刮取政府数据库

时间:2014-01-17 00:24:17

标签: phantomjs casperjs

每个Superfund网站都有一个唯一的标识符(例如KYD980501076),可以在网址中对其进行编码以生成结果页:http://iaspub.epa.gov/enviro/efsystemquery.cerclis?fac_search=site_epa_id&fac_value=KYD980501076&fac_search_type=Beginning+With&postal_code=&location_address=&add_search_type=Beginning+With&city_name=&county_name=&state_code=&program_search=1&report=2&page_no=1&output_sql_switch=TRUE&database_type=CERCLIS

对于每个超级基金网站,我想要记录名称,城市,州,经度和纬度。

下面的代码可以找到所有的TD,但我一直无法让它只查看带有“result”类的表。

非常感谢任何见解......

(接下来的步骤是将结果附加到json文件中)


 var casper = require('casper').create();


function getTd() {
    var td = document.querySelectorAll('TD');    

  return Array.prototype.map.call(td, function(e) {    
     return e.innerText   
  });    
}

var url = "http://iaspub.epa.gov/enviro/efsystemquery.cerclis?fac_search=site_epa_id&fac_value=KYD980501076&fac_search_type=Beginning+With&postal_code=&location_address=&add_search_type=Beginning+With&city_name=&county_name=&state_code=&program_search=1&report=2&page_no=1&output_sql_switch=TRUE&database_type=CERCLIS";

  casper.start(url);

 casper.then(function()  {
   td = this.evaluate(getTd);    
 });

 casper.run(function()  {
   this.echo(td.join('  '))
  this.exit();
});

1 个答案:

答案 0 :(得分:0)

如果您愿意尝试使用其他解决方案,可以使用phantomjscloud.com并按照"Pinterest to JSON" example on the docs page进行操作。

如果你这样做,你可以在jquery中编写解析器,并将结果作为json返回。

免责声明:我曾在phantomjscloud上工作