当前位置:首页>python>Python爬虫入门5步搞定

Python爬虫入门5步搞定

  • 2026-10-11 15:37:06
Python爬虫入门5步搞定

Python爬虫入门:5步批量获取你需要的数据

网上有太多有价值的数据——商品价格、行业报告、新闻资讯、招聘信息……手动复制粘贴?太慢了。Python爬虫就是帮你批量、自动地从网页上抓取数据的工具。

别被"爬虫"这个词吓到,其实入门比你想象的简单。今天用5个步骤,带你从零开始写出第一个爬虫脚本。


第一步:搞清楚你要抓什么

写爬虫之前,先回答两个问题:

  • 目标网页:你要从哪个网站抓数据?(比如豆瓣电影、京东商品、天气网站)
  • 目标数据:你要抓网页上的什么内容?(比如电影评分、商品价格、气温)

举个例子:你想抓豆瓣Top250电影的名称、评分、一句话评论,目标URL就是 https://movie.douban.com/top250。

小技巧:在浏览器里按F12打开开发者工具,找到你要的数据在HTML中的位置,记下标签和属性。


第二步:装好Python和两个库

你需要Python 3.x环境,然后安装两个核心库:

库用途安装命令
requests发送HTTP请求,获取网页内容pip install requests
BeautifulSoup解析HTML,提取目标数据pip install bs4

这俩就够了,入门阶段不需要更复杂的框架。


第三步:请求网页,拿到HTML

用requests库发送请求,获取网页的HTML源码:

import requests

url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0"}  # 模拟浏览器访问
response = requests.get(url, headers=headers)
html = response.text  # 这就是网页的HTML源码
print(html[:500])  # 先看看前500个字符

为什么要加headers? 很多网站会检测访问者是不是浏览器,不加User-Agent可能被拒绝访问。加上就伪装成正常浏览器了。


第四步:解析HTML,提取数据

拿到HTML后,用BeautifulSoup解析,按标签和属性提取你要的数据:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, "html.parser")

# 找到所有电影条目
movies = soup.find_all("div", class_="item")

for movie in movies:
    name = movie.find("span", class_="title").text        # 电影名
    rating = movie.find("span", class_="rating_num").text  # 评分
    quote = movie.find("span", class_="inq").text          # 一句话评论
    print(f"{name} | 评分:{rating} | {quote}")

这段代码会输出类似:

肖申克的救赎 | 评分:9.7 | 希望让人自由
霸王别姬 | 评分:9.6 | 风华绝代
...

核心逻辑很简单:find_all找到所有同类标签,find定位单个标签,.text提取文本内容。


第五步:保存数据,批量使用

抓到的数据要保存下来才有用。最简单的方式是存CSV:

import csv

with open("movies.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["电影名", "评分", "评论"])  # 写表头
    for movie in movies:
        name = movie.find("span", class_="title").text
        rating = movie.find("span", class_="rating_num").text
        quote = movie.find("span", class_="inq").text
        writer.writerow([name, rating, quote])

打开movies.csv,你会看到一个整齐的表格:250部电影,每行一条数据,随时能用Excel打开分析。

如果你需要更专业的存储,可以用pandas存DataFrame、或存到数据库(SQLite/MySQL),原理一样。


进阶技巧:翻页爬取和反爬应对

上面的例子只抓了第一页(25条数据)。要抓全部250条,需要翻页:

for start in range(0, 250, 25):  # 0,25,50,...,225
    url = f"https://movie.douban.com/top250?start={start}"
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, "html.parser")
    # 同样的解析逻辑...
    time.sleep(1)  # 每页间隔1秒,别太猛

常见反爬手段及应对:

反爬手段应对方法
User-Agent检测headers里加浏览器UA
频率限制time.sleep()控制请求间隔
验证码降低请求频率或使用OCR识别
IP封禁使用代理IP池轮换
动态渲染页面用Selenium模拟浏览器操作

合规提醒:爬虫有边界

爬虫很强大,但有法律和道德边界:

  • 只抓公开数据,不登录后抓私有内容
  • 遵守网站的robots.txt规则
  • 不高频请求导致对方服务器压力过大
  • 抓到的数据不用于商业转售(除非获得授权)
  • 涉及个人信息的数据,要遵守《个人信息保护法》

做个有原则的爬虫开发者,工具是好的,用法决定一切。


总结:5步上手Python爬虫

回顾一下今天的路线:

步骤动作
1确定目标网页和数据
2装Python + requests + bs4
3requests.get()获取HTML
4BeautifulSoup解析提取数据
5csv/pandas保存数据

不到20行代码,你就能批量获取网页数据。这不是黑科技,这是普通人也能掌握的效率工具。

如果你想进一步学习爬虫,或者需要自动化获取某些数据,欢迎扫码交流。


扫码添加秦杰,探讨AI智能体落地应用

最新文章

随机文章