خطا در کرول محصولات یک فروشگاه
با سلام،
بنده نیاز دارم محصولات یک فروشگاه رو کرول کنیم و کد زیر رو برای این کار دارم:
این کد کار می کنه اما تمامی محصولات چندین بار تکرار میشن و به صورت یکتا نمایش داده نمیشن.
ایراد این کد کجاست و برای رفع چه کار باید بکنم؟
کد PHP:
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>';
}
پاسخ : خطا در کرول محصولات یک فروشگاه
حتما از سایتی که دارید کراول می کنید برای محصولات آی دی تعریف شده، باید اون آی دی رو توی دیتابیس ذخیره کنید و یه قسمتی رو اضافه کنید که آی دی محصول رو با آی دی موجود در دیتابس شما چک کنه اگر موجود نبود اطلاعاتش رو اضافه کنه
پاسخ : خطا در کرول محصولات یک فروشگاه
نقل قول:
نوشته اصلی توسط
1wp.ir
حتما از سایتی که دارید کراول می کنید برای محصولات آی دی تعریف شده، باید اون آی دی رو توی دیتابیس ذخیره کنید و یه قسمتی رو اضافه کنید که آی دی محصول رو با آی دی موجود در دیتابس شما چک کنه اگر موجود نبود اطلاعاتش رو اضافه کنه
محصولات موجود در سایت اصلی مدام در حال تغییر هست. و کم و زیاد میشه
ضمن اینکه مشکلی که دارم این هست که محصولات موجود در سایت اصلی تکراری نیست و درست هست، اما کد من تو خروجی تکراری میده.