Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekstrak Nilai daripada Kandungan HTML Dinamik Menggunakan Selenium dan BeautifulSoup Python?

Bagaimana untuk Mengekstrak Nilai daripada Kandungan HTML Dinamik Menggunakan Selenium dan BeautifulSoup Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-19 07:47:01979semak imbas

How to Extract Values from Dynamic HTML Content Using Python's Selenium and BeautifulSoup?

Cara Mendapatkan Nilai Kandungan HTML Dinamik Menggunakan Python

Dalam perbincangan ini, kami meneroka isu biasa yang dihadapi semasa mengikis kandungan HTML dinamik dengan Python: sebaliknya menemui pemegang tempat templat daripada nilai sebenar. Khususnya, kami berhasrat untuk mendapatkan semula nilai "median" daripada halaman web yang menggunakan templat hendal.

Pada mulanya, menggunakan perpustakaan permintaan sahaja tidak akan menghasilkan hasil yang diingini kerana ia tidak dapat mengendalikan pemaparan berasaskan JavaScript bagi muka surat. Untuk mengatasinya, kami meneroka tiga penyelesaian utama:

  • Menghuraikan Ajax JSON Secara Terus: Ini melibatkan memintas dan menghuraikan respons JSON yang dihantar halaman ke penyemak imbas.
  • Menggunakan Jurubahasa JavaScript Luar Talian: Gunakan alatan seperti SpiderMonkey atau crowbar untuk memproses permintaan dan menjana HTML yang diberikan sepenuhnya.
  • Menggunakan Alat Automasi Penyemak Imbas: Leverage alatan seperti Selenium atau Watir untuk mengautomasikan penyemak imbas, membenarkannya memproses JavaScript dan memaparkan halaman.

Dalam kes kami, kami mengesyorkan Selenium bersama-sama dengan BeautifulSoup. Dengan menggunakan Selenium untuk mendapatkan HTML yang diberikan dan BeautifulSoup untuk menghuraikannya, kami boleh mengakses kandungan HTML dinamik dengan berkesan. Di bawah ialah contoh coretan kod:

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

# Get rendered HTML using Selenium
driver = webdriver.Firefox()
driver.get('http://eve-central.com/home/quicklook.html?typeid=34')
html = driver.page_source

# Parse HTML using BeautifulSoup
soup = BeautifulSoup(html)

# Search for specific tags, e.g., those with a "formatPrice median" class
for tag in soup.find_all('formatPrice median'):
    median_value = tag.text</code>

Pendekatan ini membolehkan kami menavigasi dan berinteraksi dengan halaman web seperti yang dilakukan oleh penyemak imbas sebenar, membolehkan kami memperoleh data yang diperlukan, walaupun ia dimuatkan secara dinamik.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nilai daripada Kandungan HTML Dinamik Menggunakan Selenium dan BeautifulSoup 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