Advertisement

php抓取网页内容,获取网页数据

阅读量:

该程序利用simple_html_dom技术解析网页内容,并提取关键网页信息;随后将这些信息输出为本地xxxx.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. 打印台输出内容:

关于其获取相关元素的操作类似于jQuery中获取相关元素的操作,请参考在线网页文档。

http://simplehtmldom.sourceforge.net/manual.htm

9. 其simple_dom_html类库下载地址:

链接:https://pan.baidu.com/s/1o8mlw98 密码:im5q

全部评论 (0)

还没有任何评论哟~