php通过simple_html_dom实现抓取网页内容,获取核心网页数据,将网页数据写入本地 xxx.json 文件
其代码实现逻辑:
1. 引入simple_html_dom.php文件
require_once 'simple_html_dom-master/simple_html_dom.php';
2. 获取远程或者本地html文件
$html = file_get_html('./imooc.html');
3. 创建要获取数据的数组
$cases = Array();$arrImg = Array();
4. 获取当前网页所有案例图片、标题、观看人数、等级、价格
foreach($html->find('.shizhan-course-wrap') as $element) {$arrImg['img'] = "http:".$element->find('.shizhan-course-img',0)->src;$arrImg['intro'] = $element->find('.shizan-name',0)->plaintext;$arrImg['degree'] = $element->find('.grade',0)->plaintext;$arrImg['views'] = $element->find('.shizhan-info>span',1)->plaintext;$arrImg['desc'] = $element->find('p.shizan-desc',0)->plaintext;$arrImg['price'] = $element->find('div.course-card-price',0)->plaintext;$arrImg['link'] = "http://coding.imooc.com".$element->find('a',0)->href;$cases[] = $arrImg;}
5. 生成json格式,写入本地文件imooc.json
$json = json_encode($cases);file_put_contents('imooc.json', $json);
6. 通过其他html页面ajax调用本地json文件
~function(){function ajax(url,fn){var xhr = new XMLHttpRequest();xhr.open('get',url,true);xhr.send();xhr.onload = function(ev){fn(ev);}}ajax('./imooc.json',function(ev){var data = JSON.parse(ev.currentTarget.response);console.log(data);})
}();
7. 打印台输出内容:
8. 至于其获取元素相关的语法操作类似于jquery获取元素操作,请阅读在线网页文档:
http://simplehtmldom.sourceforge.net/manual.htm
9. 其simple_dom_html类库下载地址:
链接:https://pan.baidu.com/s/1o8mlw98 密码:im5q