tiandawen
  • 0
  • 新人请关照

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] => 空
        )
 )

请大家帮帮忙 万分感谢

阅读 110
评论 4月12日提问
    撰写回答

    登录后参与交流、获取后续更新提醒