文章目录
一、爬虫究竟是什么?(小白必看)
每天打开手机刷新闻/看商品的时候,你有没有好奇过这些数据是怎么来的?答案就是——爬虫程序!(敲黑板)
简单来说,爬虫就像个不知疲倦的:
- 数据搬运工 👷♂️
- 信息收割机 🌾
- 网络复印机 🖨️
但它比人类快得多!1秒钟能访问成百上千个网页(注意别把人家服务器搞崩了)
二、环境准备(3分钟搞定)
1. 安装必备工具(直接复制命令)
pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple
(国内镜像安装速度飞起~)
2. 开发工具选择
- 推荐VS Code/PyCharm
- 记事本也能写(但调试会哭)😭
三、第一个实战案例(手别抖!)
目标:抓取豆瓣电影Top250的电影名称和评分
import requests
from bs4 import BeautifulSoup
# 伪装浏览器访问(重要!)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
# 发送请求(注意这里要加headers)
response = requests.get('https://movie.douban.com/top250', headers=headers)
# 解析网页(就像用剪刀✂️裁剪纸片)
soup = BeautifulSoup(response.text, 'html.parser')
# 定位电影信息(CSS选择器大法)
movies = soup.select('.hd span.title:nth-child(1)')
scores = soup.select('.rating_num')
# 打印结果(见证奇迹的时刻)
for movie, score in zip(movies, scores):
print(f"{movie.text} 评分:{score.text}")
运行结果示例:
肖申克的救赎 评分:9.7
霸王别姬 评分:9.6
阿甘正传 评分:9.5
...
四、代码逐行解析(重点理解)
User-Agent
伪装:让网站以为你是正经浏览器(否则会被封IP!)requests.get()
:像浏览器地址栏输入网址BeautifulSoup
:把网页变成结构化的数据树- CSS选择器:精准定位元素(就像用GPS找宝藏🗺️)
五、进阶技巧(学完就能接单)
1. 翻页处理(抓取全部250条)
发现规律:每页url参数变化规律
for page in range(0, 250, 25):
url = f'https://movie.douban.com/top250?start={page}'
# 重复上述抓取流程...
2. 数据存储(CSV格式)
import csv
with open('movies.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['电影名称', '评分'])
for movie, score in zip(movies, scores):
writer.writerow([movie.text, score.text])
3. 反爬应对策略
- 随机延迟:
time.sleep(random.uniform(1,3))
- 代理IP池:防止被封(需要购买服务)
- 验证码破解:不建议新手尝试(会秃头)👨🦲
六、法律红线(超级重要!!!)
- 查看网站的
robots.txt
(通常在网站根目录) - 不要高频访问(间隔至少3秒)
- 禁止抓取个人隐私数据
- 商用前务必获得授权(血的教训案例很多)
七、推荐学习路线
- 基础:Requests + BeautifulSoup
- 进阶:Scrapy框架
- 高阶:Selenium自动化 / 分布式爬虫
- 扩展:数据清洗 / 可视化分析
八、常见问题Q&A
Q:为什么我的代码报403错误?
A:大概率被反爬了!检查headers是否设置正确(重点看User-Agent)
Q:数据抓取不全怎么办?
A:检查CSS选择器是否过时(网站改版会导致定位失效)
Q:想定时自动抓取怎么做?
A:结合Windows任务计划或Linux crontab(需要服务器支持)
九、实战建议
新手最容易踩的坑:
- 没设置User-Agent直接访问
- 循环请求不加延时
- 忽略网站的反爬机制
- 存储数据时编码错误
(建议先拿豆瓣/天气网站练手,千万别碰政府/金融网站!)
十、总结
爬虫就像钓鱼:
- 找对鱼塘(目标网站)
- 准备鱼竿(代码工具)
- 把握力度(访问频率)
- 遵守规则(法律法规)
现在你已经掌握了基础技巧,快去试试抓取其他网站吧!(记得控制手速)🚀
下次预告:《如何用Scrapy框架打造百万级爬虫系统》👉(关注不迷路)