我经常阅读网站的源代码以获取我必须使用的信息。我这样做
$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文件的完整路径?
答案 0 :(得分:0)
简短的回答是否定的。使用php的file_get_contents,您无法获得服务器提供html后加载的任何html。 Javascript在客户端浏览器中运行。 file_get_contents()不是浏览器,因此不会运行任何JS,它只获取服务器提供的html。
使用node.js上的javascript webscrapping可能会有一些hacky方法。但是你已经要求提供一个php解决方案,这超出了你的问题的范围。
有关JS解决方案的进一步阅读可以在这里找到: