ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP爬虫(2)DOM处理

2022-08-19 22:33:53  阅读:316  来源: 互联网

标签:文件夹 php dom DOM 爬虫 html title PHP find


https://www.cnblogs.com/jbexploit/p/4592527.html

摘要:PHP爬虫(1中详细了介绍了CURL抓取HTML数据的技术。采集数据处理也是爬虫技术中非常重要的部分。处理HTML数据可以用字符串查找,也可以利用正则表达式,但采用Dom处理是最高级的方法。

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

 

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

 

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

 

1.直接引用

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

git clone https://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 Sunra\PhpSimple\HtmlDomParser;
    $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"
    }
}

运行,php compose.phar install

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

代码如下,系统会自动加载\Sunra\PhpSimple\HtmlDomParse

复制代码
<?php
    require __DIR__ . '/vendor/autoload.php';
    $url = "http://www.81.cn";
    $dom = \Sunra\PhpSimple\HtmlDomParser::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 = \Sunra\PhpSimple\HtmlDomParser::file_get_html( $url );
        $dom =file_get_html( $url );
        $u = $dom->find("#JMYWYL dt",0);
        $title = $u ->find('a',0);
        echo $title->innertext;
    }
}
复制代码

附录

php composer.phar install,出现下列错误,

SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

解决办法,

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

(2)修改php.ini,添加

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

PC端和手机端的技术研发

标签:文件夹,php,dom,DOM,爬虫,html,title,PHP,find
来源: https://www.cnblogs.com/jmbt/p/16603490.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有