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

发布于 2022-09-12 02:11:18 字数 1600 浏览 29 评论 0

在采集这种数据中,如何正确获取到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] => 空
        )
 )

请大家帮帮忙 万分感谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文