2024 一天掌握python爬蟲【基礎篇】 涵蓋 requests、beautifulsoup、selenium:
https://www.bilibili.com/video/BV1Ju4y1Y7k6/
有些網站的數據是js動態(tài)渲染的,我們無法通過網頁源碼直接找到數據,只能通過找接口方式來獲取數據,但是很多時候,數據又是json格式的,給我們爬數據增加成本。
比如 https://www.csdn.net/ 這個網站 就是js動態(tài)渲染的首頁數據。
這時候,使用selenium,我們可以通過模擬真實瀏覽器的用戶操作行為,來獲取js動態(tài)渲染后的網頁數據,在進行解析網頁,獲取我們需要的數據。能大大提高我們的抓取效率。
Selenium是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。
我們使用Selenium,模擬瀏覽器功能,自動執(zhí)行網頁中的js代碼,實現動態(tài)加載,然后再進行數據抓取。
測試代碼:
import requests
url = "https://www.csdn.net/"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
}
r = requests.get(url=url, headers=headers)
# 設置返回對象的編碼
r.encoding = "utf-8"
print(r.text)
運行發(fā)現,返回結果里面找不到我們需要的資訊數據。