querylist在采集时标签不存在数据问题

新手上路,请多包涵

在采集这种数据中,如何正确获取到small标签的数据并正常排列

<tr class="app">
    <td>
        <a href="#">
            <b>1111111</b>
        </a>
    </td>
</tr>
<tr class="app">
    <td>
        <a href="#">
            <b>1111111</b>
            <br>
            <small>222222</small>
        </a>
    </td>
</tr>
<tr class="app">
    <td>
        <a href="#">
            <b>1111111</b>
        </a>
    </td>
</tr>

我用的这种方法进行采集

$rules = [
    'title' => ['.app>td>a>b','text'],
    'title2' => ['.app>td>a>.small','text'],
];
    $rt = QueryList::get('https://xxxxxxx')->rules($rules)->queryData();
print_r($rt);

但是这样返回的数据会有一个如下问题

Array
(
    [0] => Array
        (
            [title] => 1111111
            [title2] => 222222
        )
    [1] => Array
        (
            [title] => 1111111
        )
    [3] => Array
        (
            [title] => 1111111
        )
 )

在html中这个title2是在第二个tr里面的,但是采集数据会自动把这个title2放到数组0里面。用什么方法才能达成如下效果

Array
(
    [0] => Array
        (
            [title] => 1111111
            [title2] => 空
        )
    [1] => Array
        (
            [title] => 1111111
            [title2] => 222222
        )
    [3] => Array
        (
            [title] => 1111111
            [title2] => 空
        )
 )

请大家帮帮忙 万分感谢

阅读 1.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进