我正在做的是通过使用xpath选择器从div中提取值来抓取网页的内容。父div $listing
的数量始终相同。这个div包含(大多数时间)包含标题的$titlehit
和吉他'还有$pricehit
,其中包含类似' 199'的价格。问题是这些div的比例不是1:1。 $titlehit
上有31个结果,$pricehit
上有29个结果。一旦遇到标题但没有价格的情况,这会导致抓取的数据不正确。我想知道是否有某种方法可以锁定计数,因此标题和价格都会正确地添加到数组$list
中的相同键中。
以下是我的代码:
$listing = $xpath->query("//div[@class='cell-group listing']");
$titlehit = $xpath->query("//span[@class='mp-listing-title']");
$pricehit = $xpath->query("//span[@class='price-new']");
$i = 0;
foreach ($listing as $listings[$i]) {
$titles = $titlehit[$i];
$prices = $pricehit[$i];
$list[]=['title'=>$titlehit[$i]->nodeValue,
'price'=>trim($pricehit[$i]->nodeValue)];
$i++
}
我尝试使用各种if语句只添加标题和价格的条目到数组$list
,没有这样的结果:
if (!empty($titlehit[$i]->nodeValue) && (!empty($pricehit[$i]->nodeValue))
问题似乎与计数有关。
非常感谢任何帮助。