使用PHP和Javascript从网站读取JSON文件。

时间:2017-05-05 09:45:33

标签: php json

我经常阅读网站的源代码以获取我必须使用的信息。我这样做

$url="http://www.urlexample.com";     
file_get_contents($url);

现在我发现了一个更困难的任务:在一个网站(“fibalivestats.com”)上有一个div我要阅读的内容,但是当使用file_get_contents时,div内容为空。 html源代码中的div看起来像这样:

<div id ="aj_pbp"></div>

是的,它是'空的'。但外部html是不同的(不是空的)。他们如何填写这个div的内容?

他们使用像这样的js函数:

function loadData()  {
 var language = jQuery("html").attr("lang") || '';
 var datapath = jQuery("#datapath").val() || '';
 var jsonfile = datapath + 'data.json';
 jQuery.getJSON(jsonfile,function(data)  {
 jQuery.each(data, function(key,val)  {
  if(key == 'pbp')  {
    var pbp = '';
    var minipbp = '';
    var currentperiod = 0;
    jQuery.each(val, function(index,p)  {
      var pernum = p['period'];
      var ptype = 'reg';

...

}

我甚至无法访问.json文件的完整路径,因为我找不到像#datapath这样的东西。

功能要大得多。如您所见,他们从json文件中获取信息,称为“data.json”。

问题是:如何使用PHP和JS获取该json文件中包含的信息?我怎样才能找到.json文件的完整路径?

1 个答案:

答案 0 :(得分:0)

简短的回答是否定的。使用php的file_get_contents,您无法获得服务器提供html后加载的任何html。 Javascript在客户端浏览器中运行。 file_get_contents()不是浏览器,因此不会运行任何JS,它只获取服务器提供的html。

使用node.js上的javascript webscrapping可能会有一些hacky方法。但是你已经要求提供一个php解决方案,这超出了你的问题的范围。

有关JS解决方案的进一步阅读可以在这里找到:

  

https://scotch.io/tutorials/scraping-the-web-with-node-js