【发布时间】:2018-08-13 19:13:02
【问题描述】:
我正在抓取电子商店。我有 url 列表,加载它们然后刮表。好。第一页是对的,它可能有 30 个参数。下一页如果有 20 个参数并且在复制它们之前没有页面中的参数。这就是我的问题,为什么?也许我只是不知道如何清除数组,你能帮我吗?
//The code
foreach($odkazy as $odkaz) {
//Here i am loading each page
$html = new simple_html_dom();
$html->load_file($odkaz);
//Finding code of prodcut
$ptyp = $html->find("span.p-type");
foreach($ptyp as $a)
$item["p-type"] = trim($a->plaintext);
//Here are values of product
$hodnoticky = $html->find("dd");
foreach($hodnoticky as $h)
$hodnota[] = preg_replace('/\s\s+/', ' ',$h->plaintext);
//Here are parameters
$parametrici = $html->find("dt");
foreach($parametrici as $p)
$parametr[] = preg_replace('/\s\s+/', ' ',$p->plaintext);
//Here i am mixing them.
foreach($parametr as $i => $key)
$item[trim($key)] = $hodnota[$i];
$items[] = $item;
$html->clear();
unset($html);
}
print_r($items);
【问题讨论】:
-
您能否再解释一下您的问题。我真的无法理解第 1 页和第 2 页之间的区别。
-
好吧.. 假设你在第一页参数功率 = 60W,好吗?但是在第二页上没有任何力量.. 但它显示它是.. 如果它们丢失,它会从第一页复制参数
-
啊,这是因为您可能永远不会清除 for 循环中页面之间的 $items 数组。我将在下面提出一个解决方案。
标签: php web-scraping