php抽取号码,抽取规则

这篇博客详细介绍了数据抽取任务中规则配置的使用,包括URL与规则的一一对应、规则域的取值类型限制、数组深度要求,以及selector、flag、range和callback等关键参数的功能和用法。通过示例代码展示了如何利用这些规则从HTML内容中提取所需数据。
摘要由CSDN通过智能技术生成

抽取规则

[!WARNING|style:callout|label:注意事项|iconVisibility:default|labelVisibility:default|className:block-warning]

1、每一条任务URL配置项唯一的对应一条规则配置项,并且指定的规则名必须一一对应;

2、规则域的取值类型只能是数组;

3、对于单条任务,相应规则域的深度即数组的深度只能是2;

4、对于多条任务,相应规则域的深度即数组的深度只能是3;

$task = array(

'rule_name1' => 'http://www..blogdaren.com';

...........................................;

'rule_nameN' => 'http://www.phpcreeper.com';

);

//对于多条任务,可以看到对应规则域的深度是3而且只能是3

$rule = array(

'rule_name1' => array(

'field1' => ['selector', 'flag', 'range', 'callback'],

.....................................................,

'fieldN' => ['selector', 'flag', 'range', 'callback'],

);

.........................................................,

'rule_nameN' => array(

'field1' => ['selector', 'flag', 'range', 'callback'],

.....................................................,

'fieldN' => ['selector', 'flag', 'range', 'callback'],

);

);rule_name

每一个任务都应当提供一个相对应的唯一的规则名称,这样我们就能很方便的根据规则名索引到想要的数据,

如果规则名留空不配置的话,内核默认将采用md5($task_url)作为唯一的规则名。

selector

和jQuery选择器一模一样,其取值可以是#idName or .className or Html Element等等;此外,当flag

取值为preg或pregs时,选择器还可以是一个标准的正则表达式。

flag

attr: 用于获取HTML元素的属性 【注意: 此处attr取值是指HTML元素的属性名称如src、href等等】

html: 用于获取匹配元素包裹的HTML元素片段

text: 用于获取HTML元素包裹的文本内容

preg: preg_match()函数的封装实现

pregs: preg_match_all()函数的封装实现

range

用于进一步缩小数据提取范围,取值可以是#idName or .className or Html Element等等。

callback

可以自定义一个回调函数,不过切记务必要返回所期望的数据。

演示代码

$html = "

";

$rule = array(

'链接元素' => ['div', 'html'],

'链接文本' => ['#site', 'text'],

'链接地址' => ['div.site', 'href'],

'回调数据' => ['/(.*)/is', 'preg', [], function($field_name, $data){

return 'Hello ' . $data[1];

}],

);

$data = $parser->extractField($html, $rule, 'rule1');

pprint($data['rule1']);

//输出结果

Array

(

[0] => Array

(

[链接元素] => PHPCreeper

[链接文本] => PHPCreeper

[链接地址] => http://www.phpcreeper.com

[回调数据] => Hello PHPCreeper

)

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值