跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Python

Python 爬虫入门实战:从请求到数据保存

Python 爬虫通过发送请求、解析内容、保存数据三步实现自动化信息采集。涵盖 requests 与 BeautifulSoup 基础库安装,演示静态页面抓取流程,并介绍动态页处理及反爬策略。最后展示 CSV 与 SQLite 数据存储方案,强调遵守 robots 协议与合法合规使用。

数字游民发布于 2026/3/21更新于 2026/4/294 浏览
Python 爬虫入门实战:从请求到数据保存

爬虫本质上是一个自动化的信息采集工具,能帮你从网页中提取所需内容,比如批量抓取文章或整理数据表格。Python 凭借简洁的语法和强大的库支持,成为爬虫开发的首选语言。

核心工作流程

爬虫的逻辑其实就三步,理解了这个框架,后续扩展起来会容易很多:

  1. 发送请求:向目标网页发起访问,就像浏览器输入网址打开页面,获取网页原始 HTML 内容;
  2. 解析内容:从杂乱的网页代码中筛选出有用信息,比如标题、链接、数据等;
  3. 保存数据:将提取的信息存储到文件或数据库,方便后续查看和分析。

环境准备与库介绍

Python 爬虫的高效离不开专用库。核心必备两个基础库,进阶场景需额外补充工具。

基础库(必装)
  • requests:负责发送网络请求,快速获取网页 HTML 代码;
  • BeautifulSoup4:专注解析 HTML 内容,轻松提取目标数据。
安装命令

打开命令行,输入以下命令即可:

pip install requests beautifulsoup4
进阶工具(按需安装)
  • Selenium:处理动态网页(数据由 JavaScript 生成),可模拟点击、滚动等浏览器操作。
    pip install selenium
    
  • Scrapy:大规模爬虫框架,支持异步爬取,适合复杂项目。
    pip install scrapy
    

实战:编写第一个简单爬虫

以抓取百度首页的标题和所有链接为例,我们直接开始落地实操。

获取网页内容

用 requests 库向百度首页发送请求,获取 HTML 代码:

import requests

url = 'https://www.baidu.com'
response = requests.get(url)
print(response.text)

这里 requests.get(url) 是核心方法,response.text 会返回网页的纯文本 HTML 代码。实际运行时建议先打印出来看看结构,确认无误后再进行下一步。

解析网页,提取关键信息

用 BeautifulSoup 解析 HTML,先提取网页标题,再批量抓取所有链接:

from bs4 import BeautifulSoup

# 解析 HTML 内容(指定解析器为 html.parser)
soup = BeautifulSoup(response.text, 'html.parser')

# 1. 提取网页标题
title = soup.title.text
print('网页标题:', title)

# 2. 提取所有链接(<a>标签的 href 属性)
links = soup.find_all('a')

# 循环打印每个链接的文本和地址
for link in links:
    link_text = link.text
    link_url = link.get('href')
    print(f'文本:{link_text} | 链接:{link_url}')

注意 soup.find_all('a') 可批量匹配指定标签,link.get('href') 用于提取标签的属性值。有些链接可能是相对路径,实际项目中可能需要拼接域名。

爬虫分类与适用场景

根据网页类型和需求,选择不同的爬虫方案:

  1. 静态网页爬虫:网页数据直接写在 HTML 中(如简单博客、静态官网),用 requests+BeautifulSoup 即可轻松爬取,适合入门练习;
  2. 动态网页爬虫:数据通过 JavaScript 加载(如滚动加载的列表、登录后显示的内容),需用 Selenium 模拟浏览器运行。
  3. 大规模爬虫:需爬取海量数据(如整站文章、行业数据),用 Scrapy 框架,支持自动去重、分布式爬取,效率更高。

常见反爬问题与解决方案

很多网站会限制爬虫访问,这 3 个技巧能帮你顺利绕过:

  1. 伪装请求头:模拟真实用户浏览器,避免被识别为爬虫:
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
response = requests.get(url, headers=headers)
  1. 设置访问延迟:避免频繁请求触发限制,用 time 库添加间隔:
import time
time.sleep(2)
  1. 使用代理 IP:更换 IP 地址,突破 IP 封锁限制:
proxies = {
    'http': 'http://10.10.1.10:3128',
    'https': 'https://10.10.1.10:1080'
}
response = requests.get(url, proxies=proxies)

数据保存:把爬取的信息存起来

提取数据后,常用两种保存方式,按需选择:

保存到 CSV 文件(适合表格类数据)
import csv

with open('百度链接.csv', 'w', encoding='utf-8', newline='') as file:
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['链接文本', '链接地址'])
    # 循环写入数据
    for link in links:
        writer.writerow([link.text, link.get('href')])

注意 newline='' 是为了避免空行,encoding='utf-8' 支持中文。

保存到数据库(适合长期存储、海量数据)

以轻量级 SQLite 为例(无需额外安装数据库):

import sqlite3

conn = sqlite3.connect('爬虫数据.db')
cursor = conn.cursor()

# 创建数据表(若不存在)
cursor.execute('CREATE TABLE IF NOT EXISTS links (text TEXT, url TEXT)')

# 插入数据
for link in links:
    cursor.execute('INSERT INTO links (text, url) VALUES (?, ?)', (link.text, link.get('href')))

# 提交事务并关闭连接
conn.commit()
conn.close()
print('数据已保存到数据库')

核心知识点总结

  1. 基础流程:发送请求(requests)→ 解析内容(BeautifulSoup)→ 保存数据(CSV / 数据库);
  2. 工具选择:静态页用 requests+BeautifulSoup,动态页用 Selenium,大规模爬取用 Scrapy;
  3. 反爬技巧:伪装请求头、设置延迟、使用代理 IP;
  4. 关键原则:爬取数据时遵守网站 robots 协议,不频繁请求影响网站运行,不用于非法用途。

通过以上步骤,你已经掌握了 Python 爬虫的核心技能。可以试着爬取自己感兴趣的网站(如博客文章、电影榜单),多练习就能熟练运用。如果遇到具体网站的爬取问题,可针对性调整代码。

目录

  1. 核心工作流程
  2. 环境准备与库介绍
  3. 基础库(必装)
  4. 安装命令
  5. 进阶工具(按需安装)
  6. 实战:编写第一个简单爬虫
  7. 获取网页内容
  8. 解析网页,提取关键信息
  9. 解析 HTML 内容(指定解析器为 html.parser)
  10. 1. 提取网页标题
  11. 2. 提取所有链接(<a>标签的 href 属性)
  12. 循环打印每个链接的文本和地址
  13. 爬虫分类与适用场景
  14. 常见反爬问题与解决方案
  15. 数据保存:把爬取的信息存起来
  16. 保存到 CSV 文件(适合表格类数据)
  17. 保存到数据库(适合长期存储、海量数据)
  18. 创建数据表(若不存在)
  19. 插入数据
  20. 提交事务并关闭连接
  21. 核心知识点总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • ModelSim 仿真软件安装与使用指南
  • Antfarm:基于 OpenClaw 的 AI 代理团队智能工作流引擎
  • Coze AI 智能体开发入门:零代码搭建专属 AI 应用
  • 深度解析 GitHub Copilot Agent Skills:打造跨项目 AI 专属工具箱
  • Stable Diffusion v1.5 创意设计师指南:嵌入 Figma/PS 工作流
  • AI 大模型 40 年发展历程与未来统一趋势研究
  • AI 智能体工具:OpenCode、OpenClaw 安装与配置指南
  • Web 视频解码器性能优化:从 136KB 到 20KB 的压缩实践
  • Anthropic 揭露大模型「对齐伪造」安全风险
  • 基于 LangChain 构建 LLM 应用:核心组件与架构解析
  • 37 岁程序员职场危机应对与 Android 高级开发技能梳理
  • 字节跳动豆包系列深度拆解:国民级全模态 AI 的普惠化路径
  • Docker 部署 Redis 并实现公网远程访问
  • Faster Whisper v1.7 本地部署教程:支持 AMD 显卡与日文转中文
  • 飞算 JavaAI:智能编程助手的本地化分析与代码生成实践
  • Image-to-Video 镜像免配置启动与部署指南
  • Xapian: 一款 C++ 全文检索解决方案
  • 神经网络算法全景解析
  • Sora2 API 使用与调用实践及前端接入示例
  • Python3.8 环境下 Stable Diffusion 轻量化部署

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online