Rumah > pembangunan bahagian belakang > tutorial php > Beberapa cara untuk mengekstrak data daripada halaman HTML

Beberapa cara untuk mengekstrak data daripada halaman HTML

王林
Lepaskan: 2023-06-13 10:42:02
asal
5164 orang telah melayarinya

Halaman HTML ialah jenis halaman Internet yang paling biasa Ia ditulis dalam bentuk bahasa penanda dan mengandungi banyak tag dan elemen. Dalam kebanyakan kes, kami perlu mengekstrak data daripada halaman HTML supaya halaman tersebut boleh dianalisis, diurus dan diproses dengan betul. Artikel ini akan memperkenalkan beberapa kaedah untuk mengekstrak data daripada halaman HTML untuk membantu pembaca menyelesaikan tugas ini dengan mudah.

1. Gunakan ungkapan biasa

Ungkapan biasa ialah alat yang biasa digunakan dalam pemprosesan teks dan salah satu kaedah paling asas untuk mengekstrak data daripada halaman HTML. Ia boleh memadankan data yang diperlukan berdasarkan corak tertentu dan mengekstrak maklumat yang diperlukan.

Sebagai contoh, jika kita ingin mengekstrak semua pautan imej daripada halaman HTML, kita boleh menggunakan ungkapan biasa berikut:

<img.*?src="([wW]*?)".*?>
Salin selepas log masuk

Ungkapan biasa ini akan sepadan dengan semua teg img dan mengekstrak nilai daripada atribut src, iaitu pautan kepada imej.

Perlu diambil perhatian bahawa ungkapan biasa perlu dilaraskan mengikut situasi Jika struktur dan kandungan halaman HTML berubah, ungkapan biasa perlu ditulis semula.

2. Gunakan penghurai

Penghurai lebih fleksibel dan cekap daripada ungkapan biasa. Ia boleh menghuraikan pelbagai teg dan elemen dalam halaman HTML dan mengekstrak kandungan yang diperlukan.

Sebagai contoh, perpustakaan BeautifulSoup dalam Python ialah penghurai yang sangat mudah digunakan Ia boleh mencari teg khusus dalam halaman HTML dan mengekstrak data yang diperlukan daripadanya.

Berikut ialah kod contoh Python yang mudah, yang melaluinya semua hiperpautan boleh diekstrak daripada dokumen HTML:

from bs4 import BeautifulSoup

html = '''<html><body><div id="content"><a href="http://www.baidu.com">百度一下</a></div></body></html>'''

soup = BeautifulSoup(html, 'html.parser')
for link in soup.find_all('a'):
    print(link.get('href'))
Salin selepas log masuk

Kod ini akan mengeluarkan: http://www .baidu.com.

3. Gunakan XPath

XPath ialah bahasa pertanyaan dalam dokumen XML dan juga boleh digunakan dalam halaman HTML. Ia memilih nod atau set nod tertentu dalam dokumen berdasarkan ungkapan laluan.

Banyak bahasa pengaturcaraan arus perdana kini mempunyai penghurai XPath terbina dalam Contohnya, perpustakaan standard terbina dalam xml.etree.ElementTree dalam Python menyediakan sokongan XPath.

Berikut ialah kod contoh Python yang mudah, yang melaluinya semua hiperpautan boleh diekstrak daripada dokumen HTML:

import xml.etree.ElementTree as ET

html = '''<html><body><div id="content"><a href="http://www.baidu.com">百度一下</a></div></body></html>'''

tree = ET.fromstring(html)
for link in tree.findall('.//a'):
    print(link.get('href'))
Salin selepas log masuk

Kod ini akan mengeluarkan: http://www .baidu.com.

Ringkasan

Di atas memperkenalkan tiga kaedah mengekstrak data daripada halaman HTML Kesemuanya mempunyai kelebihan dan kekurangan masing-masing. Dalam aplikasi praktikal, kita perlu memilih kaedah yang paling sesuai mengikut situasi tertentu. Tidak kira kaedah yang digunakan, kita perlu mempunyai pemahaman tertentu tentang struktur dan bahasa penanda dalam halaman HTML, supaya kita boleh mengekstrak data yang kita perlukan dengan lebih tepat.

Atas ialah kandungan terperinci Beberapa cara untuk mengekstrak data daripada halaman HTML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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