Bagaimana untuk menghuraikan kandungan HTML menggunakan PHP dan XPath

王林
Lepaskan: 2023-06-17 11:36:02
asal
1724 orang telah melayarinya

Apabila teknologi Web terus berkembang, kandungan halaman Web menjadi semakin kompleks. Kami selalunya perlu mengekstrak maklumat daripada halaman HTML untuk pemprosesan dan analisis lanjut, seperti perangkak, perlombongan data, dsb. Artikel ini akan memperkenalkan cara menggunakan PHP dan XPath untuk menghuraikan kandungan HTML dan mendapatkan maklumat yang kami perlukan dengan cepat dan mudah.

  1. PHP Simple HTML DOM Parser

PHP Simple HTML DOM Parser ialah perpustakaan kelas PHP sumber terbuka yang boleh menghuraikan halaman HTML ke dalam struktur pokok DOM, yang kemudiannya boleh digunakan Sintaks pemilih seperti jQuery untuk mencari dan memanipulasi elemen DOM. Pustaka menyediakan kaedah pemilih terbina dalam, serta kaedah find() dan xpath() untuk mencari nod, yang terakhir memerlukan sambungan DOM dipasang dan didayakan.

Berikut ialah contoh mencari tajuk dan pautan menggunakan PHP Simple HTML DOM Parser:

<?php
require_once('simple_html_dom.php');

$html = file_get_html('http://example.com/');

// 查找所有的标题和链接
foreach ($html->find('h2') as $header) {
    echo $header->plaintext . '<br>';
    echo $header->next_sibling()->href . '<br>';
}
?>
Salin selepas log masuk
  1. Menggunakan DOMDocument dan DOMXPath

Selain PHP Simple HTML DOM Parser, PHP juga menyediakan perpustakaan kelas DOMDocument dan DOMXPath terbina dalam, yang boleh menghuraikan dan mencari halaman HTML. DOMDocument ialah kelas yang serupa dengan SimpleXML yang boleh menghuraikan dokumen XML atau HTML ke dalam struktur pokok DOM, manakala DOMXPath menyediakan kaedah xpath() untuk mencari dan memilih nod menggunakan XPath.

Berikut ialah contoh penggunaan DOMDocument dan DOMXPath untuk mencari tajuk dan pautan:

<?php
$html = file_get_contents('http://example.com/');

// 创建 DOMDocument 对象并加载 HTML
$dom = new DOMDocument();
@$dom->loadHTML($html);

// 创建 DOMXPath 对象并使用 xpath 查找节点
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//h2') as $node) {
    // 查找标题
    echo $node->nodeValue . '<br>';

    // 查找链接
    $link = $xpath->query('./following-sibling::a', $node);
    if ($link->length > 0) {
        echo $link->item(0)->getAttribute('href') . '<br>';
    }
}
?>
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan kaedah query() untuk mencari semua nod tajuk h2 dan menggunakan XPath The ungkapan memperoleh kandungan teksnya dan nilai atribut href bagi nod yang pertama berikut. Nota: Ungkapan dalam DOMXPath mesti mengikut spesifikasi W3C XPath.

  1. Ringkasan

Artikel ini menerangkan cara menggunakan PHP dan XPath untuk menghuraikan kandungan halaman HTML. PHP Simple HTML DOM Parser boleh dengan mudah menggunakan sintaks pemilih yang serupa dengan jQuery untuk mencari dan memanipulasi elemen DOM, tetapi prestasinya agak rendah untuk halaman HTML yang besar. DOMDocument dan DOMXPath menyediakan kaedah penghuraian dan carian yang lebih fleksibel dan cekap, tetapi memerlukan kos pembelajaran tertentu. Adalah penting untuk memilih kaedah penghuraian yang sesuai mengikut keperluan sebenar dan situasi tertentu.

Atas ialah kandungan terperinci Bagaimana untuk menghuraikan kandungan HTML menggunakan PHP dan XPath. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan