Python爬虫入门实战:手把手教你抓取网页数据(附源码)

一、准备工作(别急着写代码!)

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)

六、法律与道德底线(必看!)

  1. 遵守robots.txt协议(在网站域名后加/robots.txt查看)
  2. 控制请求频率(别把人家服务器搞崩了)
  3. 不抓取敏感信息(用户隐私、付费内容等)
  4. 商用前务必获得授权

七、下一步学习路线

  1. 动态网页抓取:Selenium/Playwright
  2. 反反爬策略:代理IP、验证码识别
  3. 异步爬虫:aiohttp + asyncio
  4. 框架使用:Scrapy框架进阶

(实战建议)先从公开API入手练习:

  • 国家统计局开放数据
  • GitHub API
  • 天气API等公共接口

八、完整代码获取

关注公众号回复【爬虫入门】获取带注释的完整代码文件(包含异常处理和数据存储功能)!

(新手注意)代码仅供学习交流,请勿用于商业用途或频繁访问目标网站!


写在最后:爬虫就像一把瑞士军刀,用得好能获取有用信息,用不好可能违法!建议大家在遵守法律法规的前提下进行技术练习。刚开始可能会遇到各种报错,这太正常了!记住:每一个报错都是你升级的机会!(我的第一个爬虫写了3天才跑通…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值