5 PHP ขูดไลบรารี่ในปี 2023

Dec 26 2022
การขูดเว็บมีการพัฒนาทุกวัน มีวิธีการใหม่ๆ และคลังใหม่ๆ ทุกวันเพื่อให้การขูดเว็บเป็นเรื่องสนุกและง่ายดาย

การขูดเว็บมีการพัฒนาทุกวัน มีวิธีการใหม่ๆ และคลังใหม่ๆ ทุกวันเพื่อให้การขูดเว็บเป็นเรื่องสนุกและง่ายดาย ก่อนอื่นมาทำความเข้าใจว่าทำไมเราถึงทำการขูดเว็บ จากนั้นเราจะมุ่งเน้นไปที่ไลบรารี PHP 5 อันดับแรกที่สามารถช่วยคุณขูดเว็บไซต์ได้อย่างรวดเร็ว

ทำไมเราถึงทำการขูดเว็บ?

มีสาเหตุหลายประการที่ทำให้ต้องมีการขูดเว็บ:

  1. การรวบรวมข้อมูล: การขูดเว็บสามารถใช้เพื่อรวบรวมข้อมูลจำนวนมากจากเว็บไซต์ เช่น ชื่อสินค้า ราคา และบทวิจารณ์ ซึ่งสามารถนำไปใช้ในการวิเคราะห์ข้อมูลหรือฝึกโมเดลแมชชีนเลิร์นนิงได้
  2. การวิเคราะห์การแข่งขัน: การขูดเว็บสามารถใช้เพื่อรวบรวมข้อมูลเกี่ยวกับคู่แข่ง เช่น การนำเสนอผลิตภัณฑ์ ราคา และกลยุทธ์ทางการตลาด ซึ่งจะช่วยให้ธุรกิจตัดสินใจได้อย่างชาญฉลาดมากขึ้น
  3. การเปรียบเทียบราคา: การขูดเว็บสามารถใช้เพื่อรวบรวมข้อมูลจากผู้ค้าปลีกออนไลน์หลายรายเพื่อเปรียบเทียบราคาและค้นหาข้อเสนอที่ดีที่สุด
  4. การสร้างลูกค้าเป้าหมาย: การขูดเว็บสามารถใช้เพื่อรวบรวมข้อมูลจากเว็บไซต์และโปรไฟล์โซเชียลมีเดียเพื่อสร้างรายการโอกาสในการขายที่เป็นไปได้สำหรับทีมขายและการตลาด
  5. การรวมเนื้อหา: การขูดเว็บสามารถใช้เพื่อรวบรวมข้อมูลจากหลายแหล่งและรวมเป็นรูปแบบเดียวที่ใช้งานง่าย เช่น ฟีดข่าวแบบรวมหรือไดเร็กทอรีข้อมูล

เกาต์

Goutte เป็นไลบรารี PHP ที่สามารถใช้ในการขูดเว็บ มันขึ้นอยู่กับไลบรารีไคลเอนต์ Guzzle HTTP และมีส่วนต่อประสานที่เรียบง่ายสำหรับการสร้างคำขอ HTTP และแยกวิเคราะห์การตอบสนอง

หากต้องการใช้ Goutte คุณจะต้องติดตั้งโดยใช้ Composer ซึ่งเป็นตัวจัดการการพึ่งพาสำหรับ PHP นี่คือตัวอย่างการติดตั้ง Goutte โดยใช้ Composer:

composer require fabpot/goutte

นี่คือตัวอย่างวิธีใช้ Goutte เพื่อขูดหน้าเว็บและแยกข้อความของลิงก์ทั้งหมดในหน้า:

<?php

require 'vendor/autoload.php';

use Goutte\Client;

$client = new Client();

// Make a request to the website
$crawler = $client->request('GET', 'http://books.toscrape.com/');

// Extract the text of all the links on the page
$crawler->filter('a')->each(function ($node) {
    echo $node->text() . "\n";
});

Goutte มีวิธีอื่นมากมายในการสร้างคำขอ HTTP การเลือกองค์ประกอบจาก DOM และการแยกข้อมูลจากหน้า คุณสามารถดูเอกสารประกอบของ Goutteสำหรับข้อมูลเพิ่มเติม

HTTPful

HTTPful เป็นไลบรารี PHP ที่สามารถใช้เพื่อสร้างคำขอ HTTP และแยกวิเคราะห์การตอบสนอง HTTP รองรับการตรวจสอบสิทธิ์ขั้นพื้นฐาน ส่วนหัวที่กำหนดเอง ฯลฯ สามารถใช้สำหรับการคัดลอกเว็บโดยส่งคำขอ HTTP ไปยัง URL ของหน้าที่คุณต้องการคัดลอก จากนั้นแยกวิเคราะห์การตอบสนองเพื่อดึงข้อมูลที่คุณต้องการ

หากต้องการใช้ HTTPful คุณจะต้องติดตั้งโดยใช้ Composer ซึ่งเป็นตัวจัดการการพึ่งพาสำหรับ PHP นี่คือตัวอย่างการติดตั้ง HTTPful โดยใช้ Composer:

composer require nategood/httpful

<?php

require 'vendor/autoload.php';

use Httpful\Request;

// Make a GET request to the website
$response = Request::get('http://books.toscrape.com/')->send();

// Check the status code of the response
if ($response->code == 200) {
    // The request was successful, so you can parse the response body
    $html = $response->body;
    // Extract the data you need from the HTML using PHP's DOM extension or a library like PHP Simple HTML DOM Parser
} else {
    // There was an error making the request or parsing the response
}

กึซเซิล

Guzzle เป็นอีกหนึ่งไลบรารีไคลเอนต์ PHP HTTP ที่สามารถใช้เพื่อสร้างคำขอ HTTP และแยกวิเคราะห์การตอบสนอง HTTP การใช้ Guzzle คุณจะส่งทั้งคำขอแบบซิงโครนัสและแบบอะซิงโครนัส สามารถใช้สำหรับการขูดเว็บโดยการส่งคำขอ HTTP ไปยัง URL ของหน้าที่คุณต้องการขูด จากนั้นแยกวิเคราะห์การตอบสนองเพื่อดึงข้อมูลที่คุณต้องการ

หากต้องการใช้ Guzzle คุณจะต้องติดตั้งโดยใช้ Composer ซึ่งเป็นตัวจัดการการพึ่งพาสำหรับ PHP นี่คือตัวอย่างการติดตั้ง Guzzle โดยใช้ Composer:

composer require guzzlehttp/guzzle

<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();

// Make a GET request to the website
$response = $client->get('http://books.toscrape.com/');

// Check the status code of the response
if ($response->getStatusCode() == 200) {
    // The request was successful, so you can parse the response body
    $html = (string) $response->getBody();
    // Extract the data you need from the HTML using PHP's DOM extension or a library like PHP Simple HTML DOM Parser
} else {
    // There was an error making the request or parsing the response
}

ขด

cURL เป็นเครื่องมือบรรทัดคำสั่งสำหรับส่งคำขอ HTTP และรับการตอบกลับ สามารถใช้สำหรับการขูดเว็บใน PHP โดยส่งคำขอ HTTP ไปยัง URL ของหน้าที่คุณต้องการขูด จากนั้นแยกวิเคราะห์การตอบสนองเพื่อดึงข้อมูลที่คุณต้องการ

หากต้องการใช้ cURL ใน PHP คุณจะต้องติดตั้งและเปิดใช้งานส่วนขยาย cURL ในการกำหนดค่า PHP ของคุณ คุณสามารถตรวจสอบว่ามีการติดตั้งและเปิดใช้งาน cURL หรือไม่โดยการรันโค้ดต่อไปนี้:

<?php

if (function_exists('curl_version')) {
    echo "cURL is installed and enabled\n";
} else {
    echo "cURL is not installed or enabled\n";
}

<?php

// Set up the cURL request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://books.toscrape.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Make the request and get the response
$response = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// Check the status code of the response
if ($status_code == 200) {
    // The request was successful, so you can parse the response body
    $html = $response;
    // Extract the data you need from the HTML using PHP's DOM extension or a library like PHP Simple HTML DOM Parser
} else {
    // There was an error making the request or parsing the response
}

// Close the cURL handle
curl_close($ch);

คำขอ

คำขอเป็นไลบรารี PHP ที่ทำให้คำขอ HTTP และแยกวิเคราะห์การตอบสนอง HTTP ง่ายขึ้น สามารถใช้สำหรับการขูดเว็บโดยส่งคำขอ HTTP ไปยัง URL ของหน้าที่คุณต้องการขูด จากนั้นแยกวิเคราะห์การตอบสนองเพื่อดึงข้อมูลที่คุณต้องการ

หากต้องการใช้คำขอ คุณจะต้องติดตั้งโดยใช้ Composer ซึ่งเป็นตัวจัดการการพึ่งพาสำหรับ PHP นี่คือตัวอย่างของวิธีการติดตั้งคำขอโดยใช้นักแต่งเพลง:

composer require rmccue/requests

<?php

require 'vendor/autoload.php';

use Requests;

// Make a GET request to the website
$response = Requests::get('https://www.example.com');

// Check the status code of the response
if ($response->status_code == 200) {
    // The request was successful, so you can parse the response body
    $html = $response->body;
    // Extract the data you need from the HTML using PHP's DOM extension or a library like PHP Simple HTML DOM Parser
} else {
    // There was an error making the request or parsing the response
}