Python爬虫入门案例详细教程
刚入门的新手想要一个快速上手的爬虫案例。案例要简单易懂,步骤清晰,不需要复杂的设置。然后,考虑使用哪个库。Requests和BeautifulSoup是比较常见且容易上手的组合,适合静态页面。如果用户以后需要处理动态内容,可能需要提到Selenium或Scrapy,但作为入门案例,先保持简单。
接下来,找一个合适的网站作为例子。某网站电影Top250比较稳定,结构简单,适合练习。不过要提醒遵守robots.txt和版权问题,避免法律风险。
以下是一个适合快速上手的 Python 爬虫案例,使用 requests
和 BeautifulSoup
抓取豆瓣电影 Top250 的基本信息。代码简单易懂,适合新手快速理解爬虫流程。
环境准备
- 安装必要库: pip install requests beautifulsoup4
完整代码
代码语言:javascript代码运行次数:0运行复制import requests
from bs4 import BeautifulSoup
import csv
# 1. 定义目标URL和请求头(模拟浏览器访问)
url = ";
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,/
霸王别姬,9.6,/
阿甘正传,9.5,/
...
扩展学习
- 分页爬取 修改 URL 为
={0-225}
,循环抓取全部25页数据。 - 处理动态内容 如果遇到动态加载的网站(如 JavaScript 渲染),可使用
Selenium
或Scrapy-Splash
。 - 反爬虫策略
- 添加随机延迟(如
time.sleep(1)
)。 - 使用代理 IP(如
requests.get(proxies=proxy)
)。
- 添加随机延迟(如
- 遵守规则
- 检查目标网站的
robots.txt
(如.txt
)。 - 控制请求频率,避免对服务器造成压力。
- 检查目标网站的
通过这个案例,我们可以快速掌握爬虫的基本流程:发送请求 → 解析内容 → 提取数据 → 持久化存储。