วิธีรับราคาสินค้าทั้งหมดจากเว็บไซต์ที่มี curl

ฉันกำลังพยายามใช้ cURL เพื่อรับราคาสินค้าทั้งหมดจากไซต์นี้ แต่ฉันไม่รู้วิธีขูดราคาทั้งหมดของผลิตภัณฑ์ทุกชิ้นบนเว็บไซต์นี้ http://www.bikestore.ie/.

ใครช่วยกรุณาให้คำแนะนำแก่ฉันหน่อยได้ไหม?

ตอนนี้ฉันแค่ทดสอบเพื่อให้ได้ราคาเดียวสำหรับผลิตภัณฑ์หนึ่งๆ และนั่นก็ไม่ใช่ปัญหา แต่ฉันจะขอข้อมูลที่แม่นยำสำหรับผลิตภัณฑ์ทั้งหมดได้หรือไม่

รหัสของฉันตอนนี้คือ:

 public function Scrape(){

    $curl = curl_init('http://www.bikestore.ie/scott-speedster-30-bike-2015.html');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $page = curl_exec($curl);

    if(!empty($curl)){

        $doc = new DOMDocument;
        $doc->loadHTML($page);

        $xpath = new DOMXPath($doc);
        $rupees = $xpath->evaluate('string(//div[@class="product-shop"]//div[@class="price-box"]//span[@class="price"])');
        echo $rupees;
    }
    else {
        print "Not found";
    }

person Webbie    schedule 05.07.2015    source แหล่งที่มา


คำตอบ (1)


มันไม่ใช่งานง่าย เว็บไซต์มีโครงสร้าง แต่แต่ละผลิตภัณฑ์ถูกกำหนดไว้ใน url เช่น: http://www.bikestore.ie/scott-speedster-30-bike-2015.html เมื่อคุณเพิ่มลงในรถเข็น ตัวระบุผลิตภัณฑ์ที่ไม่ซ้ำกันจะปรากฏขึ้น:enter  คำอธิบายรูปภาพที่นี่

ขั้นตอน

  1. รวบรวมข้อมูลทั้งไซต์ด้วย cURl (ค้นหาลิงก์ทั้งหมด <a> ของผลิตภัณฑ์) ดูโพสต์บน โปรแกรมรวบรวมข้อมูล python แบบง่าย คุณเพียงแค่ทำให้คล้ายกับ php.ini
  2. เก็บไว้ในฐานข้อมูล (เช่น MySQL)
  3. สำหรับแต่ละลิงก์ คุณเรียกใช้ Scrape() ขั้นตอนการดึงข้อมูลราคา/รหัสผลิตภัณฑ์ รับราคาของผลิตภัณฑ์ที่คุณทำเครื่องหมายลิงก์เป็น 'ตรวจสอบ' ใน DB เพื่อที่คุณจะได้ไม่ต้องเรียกใช้อีกครั้ง

หมายเหตุ: เพื่อประโยชน์ในการประมวลผลแบบขนาน คุณอาจเรียกใช้กระบวนการของ จุดที่ 1&2 และ จุดที่ 3 พร้อมกัน ใช้ cron สำหรับสิ่งนี้

person Igor Savinkin    schedule 06.07.2015