Dom 解析

优质
小牛编辑
138浏览
2023-12-01

支持 jQuery 语法解析 dom,基于 symfony/dom-crawlersymfony/css-selector 实现。

示例

<?php
namespace Yurun\CrawlerApp\Module\YurunBlog\Article\Model;

use Yurun\Crawler\Module\Parser\Annotation\DomSelect;
use Yurun\Crawler\Module\Parser\Enum\DomSelectMethod;
use Yurun\Crawler\Module\DataModel\Contract\BaseDataModel;

/**
 * 文章内容模型
 */
class ArticleModel extends BaseDataModel
{
    /**
     * 标题
     * 
     * @DomSelect(selector=".article-view h1", method=DomSelectMethod::TEXT)
     *
     * @var string
     */
    public $title;

    /**
     * 内容
     *
     * @DomSelect(selector=".article-content", method=DomSelectMethod::HTML)
     * 
     * @var string
     */
    public $content;

    /**
     * 时间
     *
     * @DomSelect(selector=".article-info .time", method=DomSelectMethod::TEXT)
     *
     * @var string
     */
    public $time;

}

注解

@DomSelect

Dom 选择

类名:\Yurun\Crawler\Module\Parser\Annotation\DomSelect

参数:

名称描述默认值
selector选择器
method获取数据的方法,支持attrcountouterHtmlhtmltext
param获取数据的方法传参
如果当前属性是一个模型,可以将method设为null,然后这个模型就会直接从当前匹配的节点,开始查找节点。