• 技术文章 >php教程 >php手册

    网页抓取:PHP实现网页爬虫方式小结

    2016-06-06 19:47:08原创907

    来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单。 一、Ganon 项目

    来源:http://www.ido321.com/1158.html


    抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单。

    一、Ganon

    项目地址: http://code.google.com/p/ganon/

    文档: http://code.google.com/p/ganon/w/list

    测试:抓取我的网站首页所有class属性值是focus的div元素,并且输出class值

    include 'ganon.php';
     $html = file_get_dom('http://www.ido321.com/');
     foreach($html('div[class="focus"]') as $element) {
       echo $element->class, "
    \n"
    ; } ?>

    结果:

    二、phpQuery

    项目地址:http://code.google.com/p/phpquery/

    文档:https://code.google.com/p/phpquery/wiki/Manual

    include 'phpQuery/phpQuery.php'; 
    phpQuery::newDocumentFile('http://www.ido321.com/'); 
    $artlist = pq("article"); 
    foreach($artlist as $title){ 
       echo pq($title)->find('h2')->html()."
    "
    ; } ?>

    结果:

    三、Simple-Html-Dom

    项目地址: http://simplehtmldom.sourceforge.net/
    文档: http://simplehtmldom.sourceforge.net/manual.htm

    测试:抓取我网站首页的所有链接

    include 'simple_html_dom.php';
    //使用url和file都可以创建DOM
    $html = file_get_html('http://www.ido321.com/');
    
    //找到所有图片
    // foreach($html->find('img') as $element)
    //        echo $element->src . '
    ';
    //找到所有链接 foreach($html->find('a') as $element) echo $element->href . '
    '
    ; ?>

    结果:(截图是一部分)

    四、Snoopy

    项目地址:http://code.google.com/p/phpquery/

    文档:http://code.google.com/p/phpquery/wiki/Manual

    测试:抓取我的网站首页

    include("Snoopy.class.php");
    $url = "http://www.ido321.com";
    $snoopy = new Snoopy;
    $snoopy->fetch($url); //获取所有内容
     echo $snoopy->results; //显示结果
    // echo $snoopy->fetchtext ;//获取文本内容(去掉html代码)
    // echo $snoopy->fetchlinks($url) ;//获取链接
    // $snoopy->fetchform ;//获取表单 
    ?>

    结果:

    五、手动编写爬虫

    如果编写能力ok,可以手写一个网页爬虫,实现网页抓取。网上有千篇一律的介绍此方法的文章,LZ就不赘述了。有兴趣了解的,可以百度 php 网页抓取。

    ps:资源分享

    常见的开源爬虫项目请戳:http://blog.chinaunix.net/uid-22414998-id-3774291.html


    国民岳父的“屁民理论”



    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP二进制判断文件类型 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 用PHP实现小型站点广告管理(修正版)• php实现refresh刷新页面批量导入数据的方法• 聊天室php&mysql(二)• PHP+redis实现添加处理投票的方法• Yii2如何批量添加数据,Yii2批量添加数据
    1/1

    PHP中文网