刚入门的新手想要一个快速上手的爬虫案例。案例要简单易懂,步骤清晰,不需要复杂的设置。然后,考虑使用哪个库。Requests和BeautifulSoup是比较常见且容易上手的组合,适合静态页面。如果用户以后需要处理动态内容,可能需要提到Selenium或Scrapy,但作为入门案例,先保持简单。
接下来,找一个合适的网站作为例子。某网站电影Top250比较稳定,结构简单,适合练习。不过要提醒遵守robots.txt和版权问题,避免法律风险。
以下是一个适合快速上手的 Python 爬虫案例,使用 requests
和 BeautifulSoup
抓取豆瓣电影 Top250 的基本信息。代码简单易懂,适合新手快速理解爬虫流程。
环境准备
-
安装必要库:
pip install requests beautifulsoup4
完整代码
import requests
from bs4 import BeautifulSoup
import csv# 1. 定义目标URL和请求头(模拟浏览器访问)
url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}# 2. 发送HTTP请求
response = requests.get(url, headers=headers)
response.encoding = "utf-8" # 设置编码# 3. 解析HTML内容
soup = BeautifulSoup(response.text, "html.parser")# 4. 提取数据
movies = []
for item in soup.find_all("div", class_="item"):title = item.find("span", class_="title").text # 电影标题rating = item.find("span", class_="rating_num").text # 评分link = item.find("a")["href"] # 详情页链接movies.append([title, rating, link])# 5. 保存为CSV文件
with open("douban_top250.csv", "w", newline="", encoding="utf-8") as file:writer = csv.writer(file)writer.writerow(["Title", "Rating", "Link"]) # 表头writer.writerows(movies)print("数据已保存到 douban_top250.csv!")
代码解析
-
请求头(Headers)
使用User-Agent
模拟浏览器访问,避免被网站反爬虫拦截。 -
发送请求
requests.get()
发送 GET 请求,获取网页内容。 -
解析数据
BeautifulSoup
解析 HTML 结构。find_all("div", class_="item")
定位电影条目。- 通过
find()
方法提取标题、评分和链接。
-
保存数据
将数据写入 CSV 文件,方便后续分析。
运行结果
生成的 douban_top250.csv
文件内容示例:
Title,Rating,Link
肖申克的救赎,9.7,https://movie.douban.com/subject/1292052/
霸王别姬,9.6,https://movie.douban.com/subject/1291546/
阿甘正传,9.5,https://movie.douban.com/subject/1292720/
...
扩展学习
-
分页爬取
修改 URL 为https://movie.douban.com/top250?start={0-225}
,循环抓取全部25页数据。 -
处理动态内容
如果遇到动态加载的网站(如 JavaScript 渲染),可使用Selenium
或Scrapy-Splash
。 -
反爬虫策略
- 添加随机延迟(如
time.sleep(1)
)。 - 使用代理 IP(如
requests.get(proxies=proxy)
)。
- 添加随机延迟(如
-
遵守规则
- 检查目标网站的
robots.txt
(如https://www.douban.com/robots.txt
)。 - 控制请求频率,避免对服务器造成压力。
- 检查目标网站的
通过这个案例,我们可以快速掌握爬虫的基本流程:发送请求 → 解析内容 → 提取数据 → 持久化存储。