Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengekstrak Nilai Kandungan HTML Dinamik Menggunakan Python?

Bagaimana untuk Mengekstrak Nilai Kandungan HTML Dinamik Menggunakan Python?

Susan Sarandon
Susan Sarandonasal
2024-10-19 07:47:30356semak imbas

How to Extract Dynamic HTML Content Values Using Python?

Mengambil Nilai daripada Kandungan HTML Dinamik Menggunakan Python

Apabila cuba mengekstrak data daripada tapak web dengan kandungan dimuatkan secara dinamik, pengikisan web standard menggunakan perpustakaan seperti urllib mungkin menghadapi batasan. Ini kerana pelayar sering menggunakan templat JavaScript untuk memaparkan elemen dinamik pada halaman. Akibatnya, templat ini tidak terdapat dalam HTML mentah yang diterima oleh perpustakaan mengikis web.

Penyelesaian

Untuk mengatasinya, terdapat beberapa pilihan yang tersedia:

  • Menghuraikan AJAX JSON Secara Terus: Pendekatan ini memerlukan pengetahuan tentang permintaan AJAX khusus yang digunakan dan menghuraikan respons JSON secara manual.
  • Menggunakan Jurubahasa JavaScript Luar Talian: Ini melibatkan penggunaan alat seperti SpiderMonkey atau Crowbar untuk mentafsir proses pemaparan templat JavaScript dan menjana output yang diingini.
  • Menggunakan Alat Automasi Penyemak Imbas: Alat automasi penyemak imbas seperti Selenium atau Watir membolehkan anda mengawal tika penyemak imbas tanpa kepala dan mendapatkan semula HTML yang diberikan, yang termasuk kandungan yang dijana secara dinamik.

Menggunakan Selenium dan BeautifulSoup

Selenium menyediakan cara yang mudah untuk mendapatkan kandungan HTML yang diberikan daripada tapak web, dan BeautifulSoup boleh digunakan untuk menghuraikan HTML dengan cekap. Berikut ialah coretan kod yang diubah suai yang sepatutnya berfungsi untuk tapak web yang diberikan:

<code class="python">from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Firefox()
driver.get(url)

html = driver.page_source
soup = BeautifulSoup(html)

for tag in soup.find_all("span", class_="formatPrice median"):
    print(tag.text)</code>

Kod ini menggunakan kaedah find_all BeautifulSoup untuk mencari nama kelas CSS tertentu yang sepadan dengan nilai yang dikehendaki. Dalam kes ini, nama kelas ialah formatPrice median.

Kesimpulan

Dengan menggunakan alat automasi penyemak imbas seperti Selenium, anda boleh mendapatkan semula nilai secara berkesan daripada kandungan HTML yang dijana secara dinamik, menyediakan penyelesaian yang teguh untuk senario mengikis web yang melibatkan templat JavaScript atau pemuatan data berasaskan AJAX.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nilai Kandungan HTML Dinamik Menggunakan Python?. 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