Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengikis Kandungan Diberikan JavaScript Dinamik dalam Python?

Bagaimana untuk Mengikis Kandungan Diberikan JavaScript Dinamik dalam Python?

DDD
Lepaskan: 2024-12-22 09:58:04
asal
339 orang telah melayarinya

How to Scrape Dynamic JavaScript-Rendered Content in Python?

Cara Mengikis Kandungan Dinamik Dijana oleh JavaScript dalam Python

Mengikis kandungan dinamik dari halaman web boleh menimbulkan cabaran apabila menggunakan kaedah statik seperti urllib2.urlopen(request) dalam Python . Kandungan sedemikian sering dijana dan dilaksanakan oleh JavaScript yang dibenamkan dalam halaman.

Satu pendekatan untuk menangani isu ini ialah memanfaatkan rangka kerja Selenium dengan Phantom JS sebagai pemacu web. Pastikan Phantom JS dipasang dan binarinya tersedia dalam laluan semasa.

Berikut ialah contoh untuk menggambarkan:

import requests
from bs4 import BeautifulSoup
response = requests.get(my_url)
soup = BeautifulSoup(response.text)
soup.find(id="intro-text") # Result: <p>
Salin selepas log masuk

Kod ini akan mendapatkan semula halaman tanpa sokongan JavaScript. Untuk mengikis dengan sokongan JS, gunakan 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) # Result: 'Yay! Supports javascript'
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan perpustakaan Python yang direka khusus untuk mengikis tapak web dipacu JavaScript, seperti 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") # Result: <p>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengikis Kandungan Diberikan JavaScript Dinamik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan