Rumah >pembangunan bahagian belakang >tutorial php >Contoh operasi skrip PHP Linux: melaksanakan perangkak web

Contoh operasi skrip PHP Linux: melaksanakan perangkak web

PHPz
PHPzasal
2023-10-05 08:43:481328semak imbas

PHP Linux脚本操作实例:实现网络爬虫

contoh operasi skrip PHP Linux: Melaksanakan perangkak web

Perangkak web ialah program yang menyemak imbas halaman web secara automatik di Internet, mengumpul dan mengekstrak maklumat yang diperlukan. Perangkak web ialah alat yang sangat berguna untuk aplikasi seperti analisis data tapak web, pengoptimuman enjin carian atau analisis persaingan pasaran. Dalam artikel ini, kami akan menggunakan skrip PHP dan Linux untuk menulis perangkak web mudah dan memberikan contoh kod khusus.

  1. Persediaan

Pertama, kami perlu memastikan pelayan kami telah memasang PHP dan perpustakaan permintaan rangkaian yang berkaitan: cURL.
Anda boleh memasang cURL menggunakan arahan berikut:

sudo apt-get install php-curl
  1. Menulis fungsi crawler

Kami akan menggunakan PHP untuk menulis fungsi mudah untuk mendapatkan kandungan halaman web URL yang ditentukan. Kod khusus adalah seperti berikut:

function getHtmlContent($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $html = curl_exec($ch);
    curl_close($ch);
    
    return $html;
}

Fungsi ini menggunakan perpustakaan cURL untuk menghantar permintaan HTTP dan mengembalikan kandungan halaman web yang diperolehi.

  1. Merangkak data

Kini, kita boleh menggunakan fungsi di atas untuk merangkak data halaman web yang ditentukan. Berikut ialah contoh:

$url = 'https://example.com';  // 指定要抓取的网页URL

$html = getHtmlContent($url);  // 获取网页内容

// 在获取到的网页内容中查找所需的信息
preg_match('/<h1>(.*?)</h1>/s', $html, $matches);

if (isset($matches[1])) {
    $title = $matches[1];  // 提取标题
    echo "标题:".$title;
} else {
    echo "未找到标题";
}

Dalam contoh di atas, kami mula-mula mendapatkan kandungan halaman web yang ditentukan melalui fungsi getHtmlContent, dan kemudian menggunakan ungkapan biasa untuk mengekstrak tajuk daripada kandungan halaman web.

  1. Merangkak berbilang halaman

Selain merangkak data dari satu halaman web, kami juga boleh menulis perangkak untuk merangkak data daripada berbilang halaman web. Berikut ialah contoh:

$urls = ['https://example.com/page1', 'https://example.com/page2', 'https://example.com/page3'];

foreach ($urls as $url) {
    $html = getHtmlContent($url);  // 获取网页内容

    // 在获取到的网页内容中查找所需的信息
    preg_match('/<h1>(.*?)</h1>/s', $html, $matches);

    if (isset($matches[1])) {
        $title = $matches[1];  // 提取标题
        echo "标题:".$title;
    } else {
        echo "未找到标题";
    }
}

Dalam contoh ini, kami menggunakan gelung untuk merentasi berbilang URL, menggunakan logik pengikisan yang sama untuk setiap URL.

  1. Kesimpulan

Dengan menggunakan skrip PHP dan Linux, kami boleh menulis perangkak web yang ringkas namun berkesan. Perangkak ini boleh digunakan untuk mendapatkan data di Internet dan memainkan peranan dalam pelbagai aplikasi. Sama ada analisis data, pengoptimuman enjin carian atau analisis persaingan pasaran, perangkak web memberikan kami alat yang berkuasa.

Dalam aplikasi praktikal, perangkak web perlu memberi perhatian kepada perkara berikut:

  • Hormati fail robots.txt tapak web dan ikut peraturan
  • Tetapkan selang merangkak dengan sewajarnya untuk mengelakkan beban yang berlebihan pada tapak web sasaran; ;
  • Beri perhatian kepada sekatan akses tapak web sasaran untuk mengelakkan IP anda disekat.

Saya harap melalui pengenalan dan contoh artikel ini, anda boleh memahami dan belajar menggunakan skrip PHP dan Linux untuk menulis perangkak web yang mudah. Saya doakan anda selamat menggunakannya!

Atas ialah kandungan terperinci Contoh operasi skrip PHP Linux: melaksanakan perangkak web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn