Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Python Boleh Mengikis Kandungan Laman Web Dinamik?

Bagaimana Python Boleh Mengikis Kandungan Laman Web Dinamik?

Barbara Streisand
Barbara Streisandasal
2024-12-21 10:48:16670semak imbas
<p>How Can Python Scrape Dynamic Website Content?

<p>Memotong Kandungan Dinamik dengan Python

<p>Mendapatkan teks biasa daripada HTML statik adalah mudah, tetapi kandungan dinamik adalah cerita yang berbeza. JavaScript membenamkan kandungan yang tidak boleh diakses serta-merta kepada perpustakaan permintaan HTTP Python seperti urllib2.

<p>Mengakses Kandungan Dinamik

<p>Untuk mengakses kandungan dinamik, Python boleh memanfaatkan alatan luaran yang mensimulasikan web pelayar. Alat ini melaksanakan JavaScript dan mengembalikan kandungan halaman yang diberikan.

<p>1. Selenium dengan PhantomJS:

  • Pasang PhantomJS (pelayar tanpa kepala) dan pastikan ia berada dalam laluan anda.
  • Gunakan pustaka Python Selenium untuk menjadikan PhantomJS sebagai pemacu web.
  • Navigasi ke halaman sasaran dan cari elemen minat.
<p>2. dryscape (Python 2 sahaja):

  • Pasang dryscrape menggunakan pip.
  • Buka sesi dryscrape dan lawati halaman sasaran.
  • Dapatkan semula halaman yang diberikan kandungan sebagai a rentetan.
<p>Contoh

<p>Pertimbangkan contoh halaman HTML dengan JavaScript dinamik:

<p>
<p>Tanpa JS sokongan:

import requests
from bs4 import BeautifulSoup

response = requests.get(my_url)
soup = BeautifulSoup(response.text)
print(soup.find(id="intro-text"))
<p>Output:

<p>
<p>Dengan sokongan JS (Selenium):

from selenium import webdriver

driver = webdriver.PhantomJS()
driver.get(my_url)
print(driver.find_element_by_id("intro-text").text)
<p>Output:

Yay! Supports javascript

Atas ialah kandungan terperinci Bagaimana Python Boleh Mengikis Kandungan Laman Web Dinamik?. 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