Python知識分享網(wǎng) - 專業(yè)的Python學習網(wǎng)站 學Python,上Python222
Python selenium模塊簡介
匿名網(wǎng)友發(fā)布于:2023-10-29 20:55:25
(侵權舉報)

2024 一天掌握python爬蟲【基礎篇】 涵蓋 requests、beautifulsoup、selenium

https://www.bilibili.com/video/BV1Ju4y1Y7k6/

 

有些網(wǎng)站的數(shù)據(jù)是js動態(tài)渲染的,我們無法通過網(wǎng)頁源碼直接找到數(shù)據(jù),只能通過找接口方式來獲取數(shù)據(jù),但是很多時候,數(shù)據(jù)又是json格式的,給我們爬數(shù)據(jù)增加成本。

比如 https://www.csdn.net/ 這個網(wǎng)站 就是js動態(tài)渲染的首頁數(shù)據(jù)。

這時候,使用selenium,我們可以通過模擬真實瀏覽器的用戶操作行為,來獲取js動態(tài)渲染后的網(wǎng)頁數(shù)據(jù),在進行解析網(wǎng)頁,獲取我們需要的數(shù)據(jù)。能大大提高我們的抓取效率。

Selenium是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,SafariGoogle Chrome,Opera,Edge等。

我們使用Selenium,模擬瀏覽器功能,自動執(zhí)行網(wǎng)頁中的js代碼,實現(xiàn)動態(tài)加載,然后再進行數(shù)據(jù)抓取。

測試代碼:

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ā)現(xiàn),返回結果里面找不到我們需要的資訊數(shù)據(jù)。

轉載自: