Rumah > pembangunan bahagian belakang > Tutorial Python > Mengikis web moden dengan sup dan selenium yang indah

Mengikis web moden dengan sup dan selenium yang indah

Jennifer Aniston
Lepaskan: 2025-02-28 10:02:09
asal
803 orang telah melayarinya

mengikis web: Mengekstrak data dengan cekap dari laman web

Tutorial ini menerangkan bagaimana kandungan laman web diberikan dan bagaimana untuk mengikisnya menggunakan python, permintaan, sup cantik, dan selenium. Kami akan memberi tumpuan kepada mengikis kandungan dinamik, khususnya komen.

bilakah pengikis web diperlukan?

Web mengikis secara automatik mengambil, parses, dan mengekstrak maklumat dari laman web -selalunya yang direka untuk interaksi manusia. Ini adalah usaha terakhir ketika API tidak tersedia. Pertimbangkan kelemahan ini:

  1. kerapuhan: laman web sering berubah, memecahkan pengikis.
  2. Sekatan: Banyak laman web melarang mengikis.
  3. Prestasi: mengikis jumlah data yang besar boleh menjadi lambat dan mahal.

Memahami laman web moden

Mari kita periksa struktur aplikasi web biasa. Kami akan menggunakan artikel "Pengenalan kepada Vagrant" sebagai contoh. Untuk mengikis kandungan, kita mesti terlebih dahulu mencari elemen HTML yang berkaitan.

Melihat Sumber halaman

Pelayar membenarkan melihat sumber HTML. Sumber "Pengenalan kepada Vagrant" mendedahkan sebahagian besar JavaScript yang tidak berkaitan dengan kandungan artikel itu sendiri. Petikan kecil ditunjukkan di bawah:

Modern Web Scraping With Beautiful Soup and Selenium

inilah contoh html sebenar:

Modern Web Scraping With Beautiful Soup and Selenium statik vs pengikis dinamik

Statik Pengikis

Mengabaikan JavaScript, mengambil HTML sisi pelayan mentah. Ini berfungsi jika kandungan sasaran langsung di sumber. Walau bagaimanapun, untuk kandungan yang dihasilkan oleh JavaScript (Kandungan Dinamik), kaedah ini gagal. Pengikis dinamik menggunakan alat seperti selenium untuk berinteraksi dengan halaman sebagai penyemak imbas akan, menjadikan JavaScript dan membuat kandungan dinamik tersedia. mengikis komen dinamik dengan selenium

mari mengikis komen dari laman web (contoh: komen Codecanyon). Kami akan menggunakan Selenium untuk menavigasi ke URL Komen:

Mencari elemen komen memerlukan memeriksa halaman (klik kanan, "periksa"). Selenium's
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://codecanyon.net/item/whatshelp-whatsapp-help-and-support-plugin-for-javascript/42202303/comments')
Salin selepas log masuk
membantu mengendalikan pemuatan tak segerak:

WebDriverWait

Kesimpulan
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
url = 'http://www.c2.com/loading-page'
driver.get(url)

element = WebDriverWait(driver, 5).until(
    EC.presence_of_element_located((By.ID, "loaded_element"))
)
Salin selepas log masuk

Pengikis web adalah berharga apabila data yang diperlukan tidak tersedia melalui API. Walaupun mencabar dengan aplikasi web moden, alat seperti permintaan, sup yang indah, dan selenium memudahkan proses.

Tutorial ini menggabungkan sumbangan dari Esther Vaati, pemaju perisian dan penulis untuk Envato Tuts.

Atas ialah kandungan terperinci Mengikis web moden dengan sup dan selenium yang indah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan