爬蟲01 - 爬蟲原理及其入門
文章目錄
- 爬蟲01 - 爬蟲原理及其入門
- 一:爬蟲原理
- 1:爬蟲的優勢?
- 2:爬蟲的核心庫
- 3:經典舉例
- 4:合規問題
一:爬蟲原理
學習爬蟲之前前置知識需要了解這些:
我的HTTP介紹, 了解如何調用,requests需要
我的html介紹, 了解html結構
我的css介紹,了解選擇器部分, 因為要用bs4選擇對應位置的內容
所謂爬蟲,就是通過模擬瀏覽器行為向目標網站發送請求(HTTP/HTTPS),解析響應內容并提取所需數據,最終存儲到本地或數據庫
- 請求數據(構造HTTP請求(GET/POST)獲取網頁內容)
- 解析數據(通過正則表達式、XPath或解析庫(如BeautifulSoup)提取目標信息)
- 存儲數據(將結果保存為CSV、Excel或數據庫(如MySQL、MongoDB)
1:爬蟲的優勢?
- 豐富的庫支持?:Requests(HTTP請求)、BeautifulSoup/Scrapy(解析)、Selenium(動態渲染)等庫簡化開發流程。
- ?語法簡潔高效?:Python代碼可讀性強,適合快速實現復雜邏輯。
- ?生態成熟?:社區活躍,反爬解決方案和開源項目資源豐富。
2:爬蟲的核心庫
pip install requests
pip install beautifulsoup4 # 注意這個是4版本的
pip install selenium
pip install scrapy
3:經典舉例
舉一個簡單的top250首頁電影的評分和電影名
import requests
from bs4 import BeautifulSoup# 1:構建請求,通過request先獲取到對應的HTML/XML
url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0"}response = requests.get(url, headers=headers)# 準備使用bs4進行解析,下面將使用find, find_all進行解析
soup = BeautifulSoup(response.text, "html.parser")movies = []
# 對于找到的所有的item進行解析
for item in soup.find_all("div", class_="item"):title = item.find("span", class_="title").textrating = item.find("span", class_="rating_num").textmovies.append({"title": title, "rating": rating})for index, movie in enumerate(movies):print(f"{index + 1}. {movie['title']} - {movie['rating']}")