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:
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!