j.s
September 10th, 2020, 17:59
با سلام،
بنده نیاز دارم محصولات یک فروشگاه رو کرول کنیم و کد زیر رو برای این کار دارم:
این کد کار می کنه اما تمامی محصولات چندین بار تکرار میشن و به صورت یکتا نمایش داده نمیشن.
ایراد این کد کجاست و برای رفع چه کار باید بکنم؟
function scraping_slashdot() {
$page = file_get_contents('https://');
$doc = new DOMDocument();
$doc->loadHTML($page);
$divs = $doc->getElementsByTagName('div');
$imgs = $doc->getElementsByTagName('img');
$dels = $doc->getElementsByTagName('del');
foreach($imgs as $img) {
if ($img->getAttribute('class') === 'swiper-lazy') {
$item['image'] = $img->getAttribute('src');
}
$ret[] = $item;
}
foreach($divs as $div) {
if ($div->getAttribute('class') === 'c-title') {
$item['title'] = utf8_decode($div->nodeValue);
}
if ($div->getAttribute('class') === 'c-price') {
$item['discount'] = utf8_decode($div->nodeValue);
}
if ($div->getAttribute('class') === 'c-value') {
$item['price'] = utf8_decode($div->nodeValue);
}
$ret[] = $item;
}
foreach($dels as $del) {
$item['value'] = utf8_decode($del->nodeValue);
$ret[] = $item;
}
return $ret;
}
$ret = scraping_slashdot();
foreach($ret as $v) {
echo $v['image'].'<br>';
echo $v['title'].'<br>';
echo $v['discount'].'<br>';
echo $v['price'].'<br>';
echo $v['value'].'<br>';
}
بنده نیاز دارم محصولات یک فروشگاه رو کرول کنیم و کد زیر رو برای این کار دارم:
این کد کار می کنه اما تمامی محصولات چندین بار تکرار میشن و به صورت یکتا نمایش داده نمیشن.
ایراد این کد کجاست و برای رفع چه کار باید بکنم؟
function scraping_slashdot() {
$page = file_get_contents('https://');
$doc = new DOMDocument();
$doc->loadHTML($page);
$divs = $doc->getElementsByTagName('div');
$imgs = $doc->getElementsByTagName('img');
$dels = $doc->getElementsByTagName('del');
foreach($imgs as $img) {
if ($img->getAttribute('class') === 'swiper-lazy') {
$item['image'] = $img->getAttribute('src');
}
$ret[] = $item;
}
foreach($divs as $div) {
if ($div->getAttribute('class') === 'c-title') {
$item['title'] = utf8_decode($div->nodeValue);
}
if ($div->getAttribute('class') === 'c-price') {
$item['discount'] = utf8_decode($div->nodeValue);
}
if ($div->getAttribute('class') === 'c-value') {
$item['price'] = utf8_decode($div->nodeValue);
}
$ret[] = $item;
}
foreach($dels as $del) {
$item['value'] = utf8_decode($del->nodeValue);
$ret[] = $item;
}
return $ret;
}
$ret = scraping_slashdot();
foreach($ret as $v) {
echo $v['image'].'<br>';
echo $v['title'].'<br>';
echo $v['discount'].'<br>';
echo $v['price'].'<br>';
echo $v['value'].'<br>';
}