Python爬虫入门实例:手把手教你抓取豆瓣电影Top250(零基础必看)

一、写在前面:爬虫其实很温柔!

你可能听说过"爬虫会坐牢"的都市传说(笑),但其实只要遵守这三点:

  1. 不要高频访问网站(像机关枪一样扫射服务器绝对不行!)
  2. 不要爬取隐私数据(比如用户手机号、身份证号这些)
  3. 尊重网站的 robots.txt 协议(网站门口的告示牌要仔细看)

只要做到这些,咱们就可以放心大胆地开启爬虫之旅啦!今天咱们就用豆瓣电影Top250榜单来练手,准备好了吗?🚀

二、环境准备(超简单三步走)

1. 安装Python

去官网下载最新版(推荐3.8以上版本),记得安装时勾选"Add Python to PATH"(超级重要!)

2. 安装必备库

打开cmd/终端,输入:

pip install requests beautifulsoup4 pandas

(这三个库分别是:网页请求库、HTML解析库、数据处理库)

3. 新建.py文件

随便起个名字,比如douban_spider.py,用你喜欢的编辑器打开(VS Code/PyCharm都行)

三、实战开始:手撕豆瓣电影数据

第一步:发起请求(礼貌敲门)

import requests
from bs4 import BeautifulSoup

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"
}

response = requests.get(url, headers=headers)
print(f"响应状态码:{response.status_code}")  # 200表示成功!

这里有个关键点👉User-Agent伪装:让网站觉得我们是正常浏览器访问,而不是机器人(重要的事情说三遍!)

第二步:解析HTML(庖丁解牛)

soup = BeautifulSoup(response.text, 'html.parser')

movies = []
for item in soup.select('.item'):
    title = item.select_one('.title').text
    rating = item.select_one('.rating_num').text
    quote = item.select_one('.inq').text if item.select_one('.inq') else "暂无评论"
    
    movies.append({
        "电影名称": title,
        "评分": rating,
        "经典台词": quote
    })

这里用到了CSS选择器语法(和前端开发很像),重点观察这几个class:

  • .item 每个电影项的容器
  • .title 电影标题
  • .rating_num 评分数字
  • .inq 短评文字

第三步:翻页处理(自动翻书)

豆瓣Top250有10页数据,咱们要构造翻页参数:

base_url = "https://movie.douban.com/top250?start={}"
all_movies = []

for page in range(0, 250, 25):  # 每页25条,共10页
    current_url = base_url.format(page)
    # 重复第一步和第二步的操作...
    # 记得加time.sleep(2) 礼貌等待!

这里有个小技巧💡:观察URL规律,发现start=后面的数字是0,25,50…这样变化的

第四步:保存数据(完美收官)

import pandas as pd

df = pd.DataFrame(all_movies)
df.to_excel('douban_top250.xlsx', index=False)
print("数据保存成功!快去查看Excel文件吧~")

四、完整代码(抄作业专用)

# 此处省略完整代码,但主要结构如下:
# 1. 导入库
# 2. 定义请求头
# 3. 循环处理每页
# 4. 解析数据
# 5. 保存到Excel

(完整代码建议读者自己动手写,这里给个框架提示。需要完整源码的可以评论区留言~)

五、新手常见问题(血泪教训)

1. 被封IP怎么办?

  • 使用代理IP池(新手推荐免费代理)
  • 降低请求频率(加time.sleep(random.uniform(1,3))

2. 网页结构变了咋办?

  • 定期检查CSS选择器
  • 使用浏览器开发者工具(F12)实时调试

3. 动态加载数据怎么抓?

  • 需要学习Selenium或Pyppeteer(模拟浏览器操作)
  • 分析网页的XHR请求(进阶技巧)

六、安全与道德(重要!)

⚠️特别注意:

  • 不要绕过网站的防爬措施
  • 控制爬取速度(建议1-2秒/次)
  • 不要用于商业用途(个人学习没问题)

七、下一步学习路线

  1. 学习XPath语法(另一种解析方式)
  2. 掌握Scrapy框架(企业级爬虫)
  3. 了解反爬虫机制(验证码识别、IP代理)
  4. 学习数据库存储(MySQL/MongoDB)

八、结语:爬虫改变世界?

通过今天的小案例,相信你已经感受到了数据的魅力!但切记:能力越大,责任越大。爬虫技术是把双刃剑,用好了可以分析市场趋势、做学术研究,用不好可能就会…(你懂的)

最后送大家一句话:技术无罪,关键在于使用技术的人。希望这个案例能成为你爬虫之路的起点,而不是终点!💪

(实战中遇到任何问题欢迎评论区交流,看到必回!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值