首页 > 编程 > PHP > 正文

PHP爬虫(2)DOM处理

2020-03-22 17:24:30
字体:
来源:转载
供稿:网友
  • 摘要:在PHP爬虫(1)中详细了介绍了CURL抓取HTML数据的技术。采集数据处理也是爬虫技术中非常重要的部分。处理HTML数据可以用字符串查找,也可以利用html' target='_blank'>正则表达式,但采用Dom处理是最高级的方法。

    现在我们要抓取中国军网首页“军媒要闻要论”第一条内容,

    通过浏览器工具查看网页元素,通过console获取数据。通过下图我们可以看到,在浏览器中我们可以方便调用Jquery的dom查找函数,轻松找到数据,PHP中是否也有这样的工具可以很方便的处理DOM?

    在github上查找phpdomparse,我们找到sunra/php-simple-html-dom-parser,使用用户还挺多的。下面我们介绍如何使用PhpDomParse组件,分别介绍直接引用、composer、ThinkPhp中如何使用。

    1.直接引用

    首选下载组件文件夹,在当前工程目录中执行

    git clone http://github.com/sunra/php-simple-html-dom-parser.git

    此时,工程目录下就会多出php-simpple-html-dom-parser文件夹,文件夹目录如下图

    引用HtmlDomParaer.php

    <?php    include './php-simple-html-dom-parser/Src/Sunra/PhpSimple/HtmlDomParser.php';    use SunraPhpSimpleHtmlDomParser;    $url = 'http://www.81.cn';    $dom = HtmlDomParser::file_get_html( $url );    $u = $dom->find('#JMYWYL dt',0);    $title = $u ->find('a',0);    echo $title->innertext;?>

    2.Composer调用方法

    在工程目录下安装Composer.phar,创建composer.json文件,

    {    'require': {        'sunra/php-simple-html-dom-parser': 'v1.5.0'    }}

    运行,phpcompose.pharinstall

    Composer会根据composer.json内容,下载需要的文件,安装成功之后,工程文件夹如下,

    代码如下,系统会自动加载SunraPhpSimpleHtmlDomParse

    <?php    require __DIR__ . '/vendor/autoload.php';    $url = 'http://www.81.cn';    $dom = SunraPhpSimpleHtmlDomParser::file_get_html( $url );    $u = $dom->find('#JMYWYL dt',0);    $title = $u ->find('a',0);    echo $title->innertext;?>

    3、thinkphp框架

    笔者日常也是使用TP框架的,也许有的读者没在TP中引入其他框架。TP提供了进入框架的机制,我们将Sunra文件夹放在“安装路径-->ThinkPHP->Library->Vendor”目录中,结构如下图所示,

    工程代码如下

    class IndexController extends Controller {    public function index(){}    public function dom()    {        Vendor('Sunra.PhpSimple.HtmlDomParser');        $url = 'http://www.81.cn';        //$dom = SunraPhpSimpleHtmlDomParser::file_get_html( $url );        $dom =file_get_html( $url );        $u = $dom->find('#JMYWYL dt',0);        $title = $u ->find('a',0);        echo $title->innertext;    }}

    附录

    phpcomposer.pharinstall,出现下列错误,

    SSL3_GET_SERVER_CERTIFICATE:certificateverifyfailed

    解决办法,

    (1)wgethttp://curl.haxx.se/ca/cacert.pem

    (2)修改php.ini,添加

    openssl.cafile='/opt/lampp/cacert.pem'

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表