Cara Mengikis Halaman Dinamik (JavaScript) dalam Python
Apabila berurusan dengan pengikisan web, halaman HTML statik agak mudah untuk dikendalikan. Walau bagaimanapun, cabaran timbul apabila kandungan pada halaman sasaran dijana secara dinamik oleh JavaScript.
Dalam Python, menggunakan urllib2.urlopen(permintaan) untuk kandungan halaman hanya membaca perkara yang dibentangkan dalam HTML, yang mungkin tidak termasuk JavaScript -elemen yang dihasilkan. Untuk mengakses kandungan dinamik ini, kita perlu mensimulasikan persekitaran penyemak imbas dalam kod Python.
Menggunakan Selenium dengan PhantomJS
Selenium ialah perpustakaan Python yang membenarkan interaksi dengan penyemak imbas web . PhantomJS ialah pelayar tanpa kepala yang berjalan tanpa antara muka pengguna grafik. Bersama-sama, ia menyediakan cara yang sesuai untuk mengikis kandungan dinamik.
import requests from selenium import webdriver # Ensure PhantomJS is installed and in the current path print(webdriver.PhantomJS().version) # Print version for confirmation url = 'my_url' # Create a PhantomJS webdriver driver = webdriver.PhantomJS() driver.get(url) # Retrieve the element with id "intro-text" p_element = driver.find_element_by_id('intro-text') # Print the text content of the element print(p_element.text)
Menggunakan Dryscape
Dryscape ialah satu lagi perpustakaan Python yang direka khusus untuk mengikis JavaScript tanpa kepala.
import dryscrape from bs4 import BeautifulSoup url = 'my_url' # Create a Dryscrape session session = dryscrape.Session() session.visit(url) # Get the page body response = session.body() soup = BeautifulSoup(response) # Find the element with id "intro-text" soup.find(id='intro-text')
Atas ialah kandungan terperinci Bagaimana untuk Mengikis Halaman Web Dinamik dengan JavaScript menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!