文章目录
一、准备工作(别急着写代码!)
1. 装库三剑客
pip install requests beautifulsoup4 pandas
(超级重要)这三个库是我们的核心武器:
- requests:网络请求界的瑞士军刀
- BeautifulSoup:HTML解析神器
- pandas:数据处理万金油
2. 目标网站选择
新手推荐豆瓣电影Top250(注意:实际爬取前请确认网站政策):
https://movie.douban.com/top250
二、第一个爬虫实例(30行代码搞定!)
import requests
from bs4 import BeautifulSoup
import time
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
def get_movie_info(url):
# 发送请求(带伪装!)
response = requests.get(url, headers=headers)
# 解析HTML(重点来了!)
soup = BeautifulSoup(response.text, 'html.parser')
# 定位电影信息(CSS选择器大法)
items = soup.select('.item')
for item in items:
title = item.select_one('.title').text.strip()
rating = item.select_one('.rating_num').text
print(f'电影:{title} | 评分:{rating}')
# 做个有道德的爬虫(防止被封!)
time.sleep(2)
# 翻页处理(自动抓取前10页)
for page in range(0, 100, 25):
url = f'https://movie.douban.com/top250?start={page}'
get_movie_info(url)
print(f'已抓取第 {page//25 +1} 页数据!')
三、代码逐行解析(新手必看!)
1. User-Agent伪装(躲过反爬第一关)
headers = {'User-Agent': '...'}
(敲黑板)这个请求头相当于你的网络身份证!不带的话服务器可能直接拒绝请求!
2. 网页解析技巧
soup.select('.item')
CSS选择器是爬虫的黄金钥匙,Chrome开发者工具(F12)是你的最佳搭档!
3. 时间延迟设置
time.sleep(2)
(血泪教训)不加这个的话,分分钟被网站封IP!建议每次请求间隔2-3秒
四、常见问题解决方案(避坑指南)
1. 遇到403禁止访问?
- 检查User-Agent是否有效
- 添加更多请求头参数(Referer、Cookie等)
- 使用代理IP池(进阶技巧)
2. 数据抓取不全?
- 确认CSS选择器是否正确
- 查看网页是否有JavaScript动态加载
- 尝试使用Selenium模拟浏览器(后续可升级)
3. 中文乱码问题
response.encoding = 'utf-8' # 或根据网页实际编码调整
遇到乱码时先检查网页的标签
五、数据存储技巧(CSV实战)
import csv
with open('movies.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['电影名称', '评分'])
# 在循环中写入数据
writer.writerow([title, rating])
(升级版)用pandas更优雅:
import pandas as pd
df = pd.DataFrame(data_list)
df.to_csv('movies.csv', index=False)
六、法律与道德底线(必看!)
- 遵守robots.txt协议(在网站域名后加/robots.txt查看)
- 控制请求频率(别把人家服务器搞崩了)
- 不抓取敏感信息(用户隐私、付费内容等)
- 商用前务必获得授权
七、下一步学习路线
- 动态网页抓取:Selenium/Playwright
- 反反爬策略:代理IP、验证码识别
- 异步爬虫:aiohttp + asyncio
- 框架使用:Scrapy框架进阶
(实战建议)先从公开API入手练习:
- 国家统计局开放数据
- GitHub API
- 天气API等公共接口
八、完整代码获取
关注公众号回复【爬虫入门】获取带注释的完整代码文件(包含异常处理和数据存储功能)!
(新手注意)代码仅供学习交流,请勿用于商业用途或频繁访问目标网站!
写在最后:爬虫就像一把瑞士军刀,用得好能获取有用信息,用不好可能违法!建议大家在遵守法律法规的前提下进行技术练习。刚开始可能会遇到各种报错,这太正常了!记住:每一个报错都是你升级的机会!(我的第一个爬虫写了3天才跑通…)