Mengikis Web untuk Kandungan Dinamik dengan Python
Mengikis web memerlukan akses dan menghuraikan data daripada tapak web. Walaupun halaman HTML statik tidak menimbulkan cabaran, mengekstrak kandungan yang dijana secara dinamik oleh JavaScript boleh menimbulkan halangan.
Bottleneck Pelaksanaan JavaScript
Apabila menggunakan urllib2.urlopen(permintaan), kod JavaScript kekal tidak dilaksanakan kerana ia bergantung pada penyemak imbas untuk pelaksanaan. Ini menghalang pengambilan kandungan.
Mengatasi Halangan
Untuk menangkap kandungan dinamik dalam Python, pertimbangkan untuk menggunakan alatan seperti Selenium dengan PhantomJS atau pustaka dryscrape Python.
Selenium dan PhantomJS
Pasang PhantomJS dan pastikan binarinya berada dalam laluan. Gunakan Selenium untuk mencipta objek pemacu web PhantomJS. Navigasi ke URL sasaran, cari elemen yang dikehendaki dan ekstrak teksnya.
Contoh:
from selenium import webdriver driver = webdriver.PhantomJS() driver.get(my_url) p_element = driver.find_element_by_id('intro-text') print(p_element.text)
Pustaka dryscrape
Pilihan lain ialah menggunakan perpustakaan dryscrape, yang menawarkan antara muka yang lebih mudah untuk mengikis berkuasa JavaScript laman web.
Contoh:
import dryscrape from bs4 import BeautifulSoup session = dryscrape.Session() session.visit(my_url) response = session.body() soup = BeautifulSoup(response) soup.find(id="intro-text")
Kesimpulan:
Dengan menggunakan Selenium dengan PhantomJS atau perpustakaan dryscrape, Python pembangun boleh mengikis kandungan web dinamik yang dihasilkan oleh JavaScript dengan berkesan, membolehkan pengekstrakan data berharga yang lancar daripada tapak web moden.
Atas ialah kandungan terperinci Bagaimana Python Boleh Mengikis Kandungan Web Dinamik Dijana oleh JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!