Python 爬蟲(chóng)三劍客:玩轉(zhuǎn) Requests、BeautifulSoup、Selenium!
想提取頁(yè)面標(biāo)題、關(guān)鍵內(nèi)容?今天我們舉例,搞懂 Python 爬蟲(chóng)最常用的三大工具!

Requests:快速發(fā)起請(qǐng)求,獲取網(wǎng)頁(yè)結(jié)果
適合處理靜態(tài)網(wǎng)頁(yè),比如獲取CSDN結(jié)果的原始 HTML。不保證一定獲取網(wǎng)頁(yè)內(nèi)容,看網(wǎng)站保護(hù)措施。
示例:請(qǐng)求CSDN頁(yè)面
import requests
url = "https://www.csdn.net/"
headers = {
    "User-Agent": "Mozilla/5.0"
}
res = requests.get(url, headers=headers)
print(res.text[:500])  # 打印前 500 個(gè)字符適合初學(xué)者:一行代碼就能發(fā)請(qǐng)求。
BeautifulSoup:解析 HTML 內(nèi)容,提取標(biāo)題
搭配 Requests,解析頁(yè)面結(jié)構(gòu),提取標(biāo)題。
示例:提取資訊頭條的標(biāo)題
import requests
from bs4 import BeautifulSoup
url = "https://www.csdn.net/"
headers = {
    "User-Agent": "Mozilla/5.0"
}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, "lxml")
results = soup.select("div.home-info")  # 獲取“資訊頭條”的標(biāo)題
title = results[0].find("span").get_text()
print(f"{title}\n")Selenium:模擬瀏覽器操作,解決 JavaScript 加載問(wèn)題
如果你想實(shí)現(xiàn)「打開(kāi)百度首頁(yè) → 輸入關(guān)鍵詞 → 自動(dòng)點(diǎn)擊搜索」的完整流程,Selenium 就是你的神器!
示例:自動(dòng)在百度搜索“Python 爬蟲(chóng)”
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 找到輸入框并輸入關(guān)鍵詞
search_input = driver.find_element(By.ID, "kw")
search_input.send_keys("Python 爬蟲(chóng)")
search_input.send_keys(Keys.RETURN)
# 頁(yè)面就自動(dòng)跳轉(zhuǎn)了
time.sleep(200)
# 具體爬取內(nèi)容方法后續(xù)詳細(xì)講
driver.quit()優(yōu)點(diǎn):完全模擬瀏覽器操作,可見(jiàn)即可爬。
推薦組合方式
頁(yè)面類(lèi)型  | 推薦工具  | 
普通 HTML 頁(yè)面  | 
  | 
JavaScript 頁(yè)面  | 
  | 
登錄、操作交互頁(yè)  | 
  | 
接口 API  | 
  | 
反爬建議
- 加入U(xiǎn)ser-Agent,防止被百度判定為爬蟲(chóng)
 - 加上time.sleep(),模擬人類(lèi)訪問(wèn)行為
 - 控制請(qǐng)求頻率,避免被封 IP
 
小結(jié)
工具  | 優(yōu)勢(shì)  | 劣勢(shì)  | 
Requests  | 快速輕便  | 不能處理 JS  | 
BeautifulSoup  | 提取結(jié)構(gòu)清晰、簡(jiǎn)單  | 需搭配其他庫(kù)  | 
Selenium  | 模擬瀏覽器功能強(qiáng)大  | 啟動(dòng)慢、資源消耗大  | 
學(xué)會(huì)這三大爬蟲(chóng)工具,就能勝任 80% 的網(wǎng)頁(yè)數(shù)據(jù)抓取任務(wù)。關(guān)于js逆向不適合小白學(xué)習(xí),并且爬蟲(chóng)爬數(shù)據(jù)本就要遵守網(wǎng)站的規(guī)則,如果設(shè)置復(fù)雜驗(yàn)證了,那就是不想讓你去爬,強(qiáng)行為之可別太刑了。















 
 
 









 
 
 
 