首頁 > 後端開發 > Python教學 > 現代網絡用美麗的湯和硒刮擦

現代網絡用美麗的湯和硒刮擦

Jennifer Aniston
發布: 2025-02-28 10:02:09
原創
813 人瀏覽過

>網絡刮擦:有效從網頁上提取數據

本教程解釋了網頁內容的渲染方式以及如何使用Python,請求,美麗的湯和硒來刮擦它。 我們將專注於刮擦動態內容,特別是評論。

>

何時需要網絡刮擦?

> Web刮擦會自動檢索,解析和從網頁中提取信息,通常是為人類互動而設計的。 當沒有API時,這是最後的手段。 考慮以下缺點:

  1. 脆弱性:網頁頻繁更改,打破刮板。
  2. 限制:許多網站禁止刮擦。 >
  3. 性能:刮擦大量數據可能會很慢且昂貴。 >
  4. 了解現代網頁

>讓我們檢查典型的Web應用程序的結構。 我們將以“流浪介紹”文章為例。 要刮擦內容,我們必須首先找到相關的HTML元素。

查看頁面源

瀏覽器允許查看HTML源。 “流浪者簡介”來源揭示了與文章內容本身無關的縮小JavaScript的很大一部分。 下面顯示了一個小摘錄:

以下是實際HTML的樣本:Modern Web Scraping With Beautiful Soup and Selenium

靜態與動態刮擦Modern Web Scraping With Beautiful Soup and Selenium

靜態刮擦

忽略JavaScript,獲取原始服務器端HTML。 如果目標內容直接在源中,則可以使用。 但是,對於由JavaScript(動態內容)生成的內容,此方法失敗了。

>動態刮擦使用硒等工具作為瀏覽器會與頁面交互,呈現JavaScript並使動態內容可用。 >用硒刮擦動態評論 >讓我們從網站上刮擦評論(示例:Codecanyon評論)。我們將使用Selenium導航到註釋URL:

找到註釋元素需要檢查頁面(右鍵單擊,“檢查”)。 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')
登入後複製

結論WebDriverWait 當必要的數據不容易通過API提供時,

>網絡刮擦是有價值的。 雖然挑戰現代網絡應用程序,但諸如請求,美麗的湯和硒等工具簡化了過程。
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"))
)
登入後複製

>

本教程結合了Esther Vaati的貢獻,Esther Vaati是Envato Tuts的軟件開發人員兼作者。

以上是現代網絡用美麗的湯和硒刮擦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板