Python爬虫实战:手把手教你抓取豆瓣电影Top250(新手友好版)

先看成果再学操作!

打开咱们的Python编辑器运行代码,2秒钟就能看到控制台刷刷刷输出电影数据,最后还会生成一个整整齐齐的movies.csv文件!这种立竿见影的成就感,就是编程最爽的时刻啊朋友们!(谁试谁知道~)

环境准备三件套

  1. 安装Python(推荐3.8+版本)
  2. pip install requests beautifulsoup4(必装!)
  3. 准备个趁手的编辑器(VS Code/PyCharm都行)

四步搞定爬虫基础版

第一步:发送HTTP请求

import requests

url = 'https://movie.douban.com/top250'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
response = requests.get(url, headers=headers)
print(f'响应状态码:{response.status_code}')  # 200就是成功啦!

重要的事情说三遍:加Headers!加Headers!加Headers! 很多网站会拦截没有User-Agent的请求,这个伪装浏览器的小技巧能让你成功率提升80%!

第二步:解析HTML数据

from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.find_all('div', class_='info')

for movie in movies:
    title = movie.find('span', class_='title').text
    rating = movie.find('span', class_='rating_num').text
    print(f'电影:{title} | 评分:{rating}')

BeautifulSoup就像个智能剪刀✂️,用find()find_all()就能精准剪出需要的内容。注意class后面有个下划线class_,这是Python语法要求,不是打错了!

第三步:数据存储

import csv

with open('movies.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['电影名称', '评分', '短评数量'])
    
    for movie in movies:
        title = movie.find('span', class_='title').text
        rating = movie.find('span', class_='rating_num').text
        comment = movie.find('div', class_='star').find_all('span')[-1].text
        writer.writerow([title, rating, comment])

生成CSV文件就像给数据安了个家🏠,用Excel就能直接打开查看。进阶玩家可以改成MySQL存储,加个INSERT INTO语句就OK!

第四步:处理分页

for page in range(0, 250, 25):
    url = f'https://movie.douban.com/top250?start={page}'
    response = requests.get(url, headers=headers)
    # 接上面的解析和存储代码
    time.sleep(3)  # 做个有道德的爬虫er~

循环10次就能抓取全部250条数据!注意time.sleep(3)这个操作,访问太频繁可能会被网站拉黑名单哦(别问我怎么知道的)😅

新手常见问题急救包

  1. 报错403怎么办?

    • 检查User-Agent是否有效
    • 试试加个Cookie(浏览器按F12就能找到)
    • requests.Session()保持会话
  2. 数据抓取不全?

    • 检查class名称是否写对
    • 试试用select()代替find()
    • 打印整个标签看结构print(movie.prettify())
  3. 被封IP了咋整?

    • 使用代理IP池(进阶玩法)
    • 降低请求频率(至少3秒/次)
    • 换用Selenium模拟浏览器

升级你的爬虫装备

想挑战更复杂的网站?这些技能赶紧get起来:

  • 破解Ajax动态加载(需要分析XHR请求)
  • 处理登录验证(Session+Cookie管理)
  • 应对验证码(OCR识别或打码平台)
  • 使用Scrapy框架(企业级爬虫必备)

法律红线不能碰!

  • 别碰需要登录才能访问的数据
  • 遵守网站的robots.txt规则
  • 不要高频访问(超过5次/秒很危险)
  • 数据仅用于学习,别商业倒卖!

看到这里你已经打败了全国80%的Python初学者!这个案例虽然简单,但包含了爬虫最核心的四个步骤:请求→解析→存储→翻页。下次可以试试抓取知乎热榜、天气数据,或者…你懂得(手动狗头)!

(悄悄说:下期教大家用Selenium抓动态网页,关注不迷路~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值