有一些html中的数据是页面加载完成后执行的js代码生成的,源数据存储在html的script中,用php来获取可以这样写:
$html=<<
......
"article_id": "20200511A041GF",
"article_type": "0",
"title": "美国确诊超132万!白宫称副总统彭斯“目前没有隔离”",
"iNewsRecommendLevel": 1,
"abstract": null,
"catalog1": "politics",
"catalog2": "politics_international",
"introduction": "",
"media": "央视新闻",
"media_id": "58",
"pubtime": "2020-05-11 08:09:07",
"comment_id": "5221605433",
"tags": "美国_社会,白宫,彭斯,约翰斯·霍普金斯大学,自我隔离",
"content": null,
"political": 1,
"artTemplate": null,
"FztCompetition": null,
"FCompetitionName": null,
"cms_id": "20200511A041GF00",
"from_where": "sumeru-node",
"videoArr": []
}
......
EOF;
$pattern='/AA\.BB\s*=\s*\{(.*?)\}/ms';
preg_match($pattern,$html,$match);
var_dump($match);
我们需要的数据再$match[1]中,给$match[1]中的数据两边加上花括号就是json格式的数据,可以用json_decode来解析成数组方便使用
$data=json_decode('{' . $match[1] . "}", true);
var_dump($data);