简单的 DOM - 抓取缺少类的网站

Simple DOM - scraping a site with missing classes

提问人:Mark Barry 提问时间:9/12/2023 更新时间:9/12/2023 访问量:12

问:

我正在抓取一个分类广告的网站,每个页面都有 15 个搜索结果列表。大多数车辆列表都会有 class=price 作为价格。但是,有些列表省略了价格,这意味着我的 15 个数组可能缺少值,当我稍后遍历它们以在我的网站上显示列表时,这是一个问题。那么,如何确保填充每个数组值呢?这是我正在抓取的站点的 HTML 示例:

<div class="search-results">
    <a class="inner">
        <div class="desc">Vehicle 1</div>
        <div class="desc">Vehicle 2</div>
        <div class="desc">Vehicle 3</div>
        <div class="desc">Vehicle 4</div><div class="price">$30,000</div>
        <div class="desc">Vehicle 5</div>
        ...
        <div class="desc">Vehicle 15</div>
    </a>
</div>

这是我的代码,如果每个列表都有价格,它就会起作用,但如果缺少任何价格,它就会失败:

foreach($html->find('div[class="search-results"] a[class=inner] div[class=price]') as $a) {
    $car_price[] = $a->plaintext;
}

在此示例中,此代码仅返回一个数组值,它甚至不在数组的第 4 个位置,因为它是数组中的唯一值。那么,即使价格为 null,我如何确保所有 15 个数组元素都有一个值呢?我的想法是创建一个空值,如果它丢失,但我不确定如何做到这一点。谢谢!

HTML 数组 DOM 屏幕抓取

评论


答: 暂无答案