跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 网页数据爬取实战教程

Python 网页数据爬取涉及获取 URL、发送 HTTP 请求、解析 HTML 源代码及提取目标信息。介绍使用 requests 库模拟浏览器请求获取页面源码,结合 BeautifulSoup 库进行 HTML 解析,通过定位元素属性(如 class、tag)在列表中提取具体数据。示例涵盖基础循环遍历与文本清洗,适用于静态网页数据采集场景。

不羁发布于 2025/2/7更新于 2026/10/26101 浏览
Python 网页数据爬取实战教程

Python 网页数据爬取实战教程

1. 环境准备

在开始之前,请确保已安装 Python 环境及相关库:

pip install requests beautifulsoup4

2. 核心流程

爬虫的基本流程包括以下四个步骤:

  1. 获取 URL:明确目标网页地址。
  2. 发送请求:模拟浏览器发送 HTTP 请求获取源代码。
  3. 解析 HTML:使用解析库处理返回的文本内容。
  4. 提取数据:定位并抓取所需信息。

3. 代码实现

以下示例演示如何使用 requests 获取网页源码,并利用 BeautifulSoup 解析列表中的数据。

import requests
from bs4 import BeautifulSoup

def fetch_data(url):
    # 设置请求头,模拟浏览器行为
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
    }
    try:
        response = requests.get(url, headers=headers, timeout=10)
        # 自动识别编码,防止乱码
        response.encoding = response.apparent_encoding
        
        # 初始化 BeautifulSoup 对象,使用 html.parser
        soup = BeautifulSoup(response.text, 'html.parser')

        # 假设目标数据在 ul 列表中(根据实际页面结构调整选择器)
        items = soup.find_all('ul')
        data_list = []
        
        for item in items:
            # 进一步定位子元素并提取文本
            text = item.get_text(strip=True)
            if text:
                data_list.append(text)
        return data_list
    except Exception as e:
        print(f"Error: {e}")
        return []

if __name__ == '__main__':
    target_url = 'https://example.com'  # 替换为实际目标网址
    results = fetch_data(target_url)
    for r in results:
        print(r)

4. 调试技巧

  • 查看元素结构:在浏览器中按 F12 打开开发者工具,检查目标数据的标签名称、class 或 id。
  • 定位路径:使用左上角的箭头工具点击页面对应元素,确认其在 DOM 树中的位置。
  • 验证结果:运行脚本后对比控制台输出与网页显示内容是否一致。

5. 注意事项

  • 遵守协议:尊重网站的 robots.txt 规则,避免高频访问。
  • 异常处理:网络请求可能失败,需添加 try-except 块增强稳定性。
  • 数据清洗:提取的文本可能包含多余空白字符,建议使用 .strip() 处理。

目录

  1. Python 网页数据爬取实战教程
  2. 1. 环境准备
  3. 2. 核心流程
  4. 3. 代码实现
  5. 4. 调试技巧
  6. 5. 注意事项

更多推荐文章

查看全部
  • RabbitMQ 分布式系统实战:从安装部署到 C++ 客户端开发
  • MySQL 动态分区管理:自动化与优化实践
  • 本地化知识库问答系统搭建指南:支持 PDF Word 检索与实时对话
  • 我用Openclaw + Claude搭了一套自动写作系统,每天省3小时
  • 本地离线部署AI大模型:OpenClaw + Ollama + Qwen3.5:cloud/Qwen3:0.6b 超详细教程(无需GPU)
  • 【教程】如何在WSL2:Ubuntu上部署llama.cpp
  • 【大模型 】API 对接指南:OpenAI/Claude/LLaMA 3 调用技巧
  • LLaMA-Factory 安装与配置指南
  • CSS 基础语法与常见样式详解
  • llama.cpp 重大更新:内置 Web UI,性能超越 Ollama,本地部署新选择
  • 前端国际化实战:基于 i18next 的多语言方案
  • 机器人实践开发:Foxglove 开发环境完整搭建指南
  • 阿里 Qoder AI 编程插件实测:JetBrains IDE 生态新选择
  • SpringBoot+Vue 社区医院管理系统设计与实现
  • 文心一言开源版测评:能力、易用性与价值解析
  • VS Code 免费 AI 编程插件精选与配置指南
  • Rust 与 WebAssembly 实战:在浏览器与 Node.js 中运行高性能代码
  • 渐进式 AIGC 聚合系统:支持多模态大模型与 Agent 智能体开发
  • Spring Boot 2.7.18 至 3.5.8 版本升级避坑指南
  • 2026 年 3 月全球 AI 前沿动态:模型、智能体与产业融合

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

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