<p>
Mengikis Kandungan Dinamik Dijana oleh JavaScript dalam Python
<p>Apabila mengikis halaman web, kehadiran kandungan dinamik yang dijana oleh JavaScript boleh menimbulkan cabaran. Kandungan ini, selalunya disembunyikan daripada kod sumber halaman, menimbulkan sekatan jalan untuk kaedah tradisional yang bergantung pada penghuraian HTML statik.
<p>Untuk mengatasi had ini, beberapa pendekatan boleh digunakan:
-
<p>Selenium dengan PhantomJS:
- Pasang PhantomJS dan tambahkan perduaannya pada laluan.
- Gunakan perpustakaan Selenium Python untuk mengawal PhantomJS, pelayar tanpa kepala yang melaksanakan halaman web dan menangkap kandungan dinamik.
- Cari elemen mengikut ID atau CSS lain pemilih dan mengekstrak teks mereka atau yang lain atribut.
-
<p>dryscrape:
- Pasang pustaka dryscrape Python.
- Buat Sesi dryscrape dan lawati URL sasaran.
- Akses kandungan halaman sebagai rentetan dan menghuraikannya menggunakan BeautifulSoup.
- Ekstrak kandungan berdasarkan dokumen HTML yang dihuraikan.
<p>
Contoh: <p>Pertimbangkan halaman web dengan HTML berikut:
<p>
Salin selepas log masuk
<p>
Tanpa Sokongan JavaScript:
import requests
from bs4 import BeautifulSoup
response = requests.get(my_url)
soup = BeautifulSoup(response.text)
soup.find(id="intro-text")
# Output: <p>
Salin selepas log masuk
<p>
Dengan Sokongan JavaScript (Selenium):
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(my_url)
p_element = driver.find_element_by_id(id_='intro-text')
print(p_element.text)
# Output: Yay! Supports javascript
Salin selepas log masuk
<p>
Dengan Sokongan JavaScript (dryscrape):
import dryscrape
from bs4 import BeautifulSoup
session = dryscrape.Session()
session.visit(my_url)
response = session.body()
soup = BeautifulSoup(response)
soup.find(id="intro-text")
# Output: <p>
Salin selepas log masuk
<p>Dengan menggunakan teknik ini, anda boleh mengikis kandungan dinamik yang dihasilkan oleh JavaScript dan akses dengan berkesan maklumat lengkap yang terdapat pada halaman web.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengikis Kandungan Web Dinamik yang Dijana oleh JavaScript Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!