怎么下载菜鸟教程Python 100例的PDF或离线学习资料?

巷口听风
巷口听风
发布时间:2026-11-03| 8人浏览过
原创

针对菜鸟教程未直接提供Python 100例官方单键下载的现状,本文系统梳理了浏览器打印另存、Python自动化爬虫清洗导出PDF,以及获取社区开源归档三种可行方案与实操步骤。

菜鸟教程官网(runoob.com)的“Python 100例”作为经典的练习题库,线上并未提供官方的一键打包下载PDF按钮。想要脱离网络限制在本地研读、做笔记或打印,主要有三种可行路径:一是利用现代浏览器的“打印为PDF”功能或单页保存插件快速留存;二是借助几行简单的Python脚本自动化爬取100个实例并拼接生成格式工整的本地PDF;三是直接在开源社区(如GitHub)检索已归档的结构化Markdown或PDF仓库。本文将逐一讲解具体操作步骤与注意事项。
怎么下载菜鸟教程Python 100例的PDF或离线学习资料?
缩略图:菜鸟教程 Python 100例 离线资料获取方案全貌

一、为什么官方没有直接提供PDF下载?

菜鸟教程作为面向初学者的通用在线编程技术网站,其主要业务模式是基于网页交互阅读与在线编译器(Tryit Editor)体验。网站的“Python 100例”页面结构为:一个主索引目录页面(包含题目1到题目100的标题链接),每个题目指向独立的子页面(例如 python-exercise-example1.html)。

由于网页结构天然是分散的超文本,且页面中集成了侧边导航、广告栏、评论区与在线运行按钮,官方并没有针对这100个例子专门生成一个合并版PDF放置在服务器供人一键下载。对于想要在没有网络环境下(如飞机上、旅途中、封闭机房)研习题目,或者希望将题目汇总打印在纸上练习的读者,必须通过本地转换或技术手段生成离线版。

怎么下载菜鸟教程Python 100例的PDF或离线学习资料?
图1:三种离线资料获取途径的特性、门槛与排版质量对比

二、方法一:零门槛浏览器打印与扩展保存

如果不需要批量写代码,只想快速将特定题目或整本页面存入iPad或电脑本地阅读,利用浏览器内置的“另存为PDF”是最直接的方式。

1. 浏览器自带打印功能(Ctrl + P / Cmd + P)

现代Chromium内核浏览器(如Google Chrome、Microsoft Edge)提供了高度成熟的打印渲染引擎:

  1. 在浏览器中打开目标实例页面(如 https://www.runoob.com/python/python-exercise-example1.html)。
  2. 按下快捷键 Ctrl + P(Windows)或 Cmd + P(Mac)呼出打印面板。
  3. 在“目标打印机”下拉菜单中选择“另存为 PDF”。
  4. 点击“更多设置”:
    • 背景图形:务必勾选,否则代码高亮底色和语法着色会变为纯白。
    • 页眉和页脚:建议取消勾选,避免在导出的每一页上下打印出网页URL和系统时间。
    • 边距:选择“默认”或“无”,让代码块排版更宽敞。
  5. 点击“保存”,选择保存路径即可生成清晰的PDF文件。
怎么下载菜鸟教程Python 100例的PDF或离线学习资料?
图2:浏览器打印另存为PDF的四个关键操作步骤与注意细节

2. 使用 SingleFile 扩展打包完整单页

如果希望导出的资料保持网页原有的CSS样式、语法高亮与字体,还可以安装浏览器开源扩展SingleFile(支持Chrome、Edge、Firefox)。

在菜鸟教程页面点击扩展图标,SingleFile会将整个网页中的CSS、内嵌图片与DOM节点压缩并打包为一个单独的 .html 文件。双击即可在任何离线电脑上用任意浏览器秒开,效果与线上完全一致。

三、方法二:利用Python自动化脚本批量生成全套PDF(推荐)

如果逐页打印100个网页,需要重复手动操作100次,效率极低。掌握Python基础的读者,完全可以用Python自己写一个批量抓取脚本:首先请求主目录提取100个案例的URL,接着清洗提取正文(剔除侧边栏、广告和评论),最后合并转换为一本连贯的PDF电子书。

怎么下载菜鸟教程Python 100例的PDF或离线学习资料?
图3:Python批量抓取与清洗生成PDF系统架构及流转逻辑

1. 依赖库准备

推荐使用 requests 处理网络请求,beautifulsoup4 进行HTML节点定位,以及轻量且不依赖复杂外部环境的 weasyprint(或 pdfkit)完成渲染:

# 终端安装基础依赖
pip install requests beautifulsoup4 weasyprint

2. 核心脚本实现代码

下面是一个经过模块化设计的完整Python脚本示例。脚本会自动解析目录页,循环抓取100个案例的题目要求与代码,注入分页与排版CSS,最后输出为单一PDF:

import os
import time
import requests
from bs4 import BeautifulSoup
from weasyprint import HTML

BASE_URL = "https://www.runoob.com"
INDEX_URL = f"{BASE_URL}/python/python-100-examples.html"
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

def get_example_links():
    """从菜鸟教程Python 100例主索引页获取所有题目链接"""
    resp = requests.get(INDEX_URL, headers=HEADERS, timeout=10)
    resp.encoding = "utf-8"
    soup = BeautifulSoup(resp.text, "html.parser")
    
    links = []
    content_div = soup.find("div", class_="article-intro")
    if not content_div:
        return links
        
    for a in content_div.find_all("a"):
        href = a.get("href")
        if href and "python-exercise-example" in href:
            full_url = href if href.startswith("http") else f"{BASE_URL}{href}"
            if full_url not in links:
                links.append(full_url)
    return links

def fetch_case_content(url):
    """抓取单个案例的题目、分析与代码"""
    resp = requests.get(url, headers=HEADERS, timeout=10)
    resp.encoding = "utf-8"
    soup = BeautifulSoup(resp.text, "html.parser")
    
    # 核心正文节点通常在 class 为 article-intro 的容器中
    article = soup.find("div", class_="article-intro")
    if not article:
        return ""
        
    # 移除所有无关 script 和推广外部链接
    for bad_tag in article.find_all(["script", "ins", "iframe"]):
        bad_tag.decompose()
        
    return str(article)

def build_pdf(links, output_pdf="Runoob_Python_100_Cases.pdf"):
    """拼接所有内容并使用WeasyPrint导出PDF"""
    css_style = """
    <style>
        @page { size: A4; margin: 18mm 15mm; }
        body { font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif; color: #222; }
        .case-wrapper { page-break-after: always; padding-bottom: 20px; }
        pre, code { font-family: monospace; background: #f5f5f5; border-radius: 4px; }
        pre { padding: 12px; border: 1px solid #ddd; white-space: pre-wrap; }
        h1, h2, h3 { color: #456581; }
    </style>
    """
    
    combined_html = f"<html><head>{css_style}</head><body>"
    for index, link in enumerate(links, 1):
        content = fetch_case_content(link)
        combined_html += f'<div class="case-wrapper"><h2>第 {index} 例</h2>{content}</div>'
        time.sleep(0.3)  # 礼貌延时,避免瞬时并发给源站带来压力
        
    combined_html += "</body></html>"
    HTML(string=combined_html).write_pdf(output_pdf)
    print(f"导出成功,文件位于:{output_pdf}")

if __name__ == "__main__":
    links = get_example_links()
    print(f"成功获取到 {len(links)} 个题目链接,开始下载与转换...")
    build_pdf(links)
💡 爬虫操作关键细节提醒

1. 设置延时:菜鸟教程页面为公共资源,使用爬虫时必须保留 time.sleep(0.3) 以上的请求间隔,避免被服务器IP限流或触发验证码。
2. 分页符控制:在CSS中给每个题目的容器包裹 page-break-after: always;,这样生成的PDF中每个练习题都会从新的一页开始,打印或翻阅时非常整齐。

四、方法三:获取社区已有的开源归档工程

如果不愿自己运行脚本,也可以直接利用开源社区开发者整理好的成果。在GitHub或Gitee上,许多开发者在刷完菜鸟教程Python 100例后,会将代码、题目说明和解题思路整理成结构化的项目。

1. 检索关键词

在GitHub或Gitee搜索框中输入以下关键词:

  • runoob-python-100-examples
  • 菜鸟教程 python 100例 markdown
  • python 经典练习100题 pdf

2. 常见开源格式与适用软件

文件格式 主要特点 推荐阅读/练习工具
.pdf 排版固定、开箱即读,适合平板手写批注或A4纸质打印 Adobe Acrobat, Edge/Chrome内置阅读器, GoodNotes
.md (Markdown) 纯文本存储,便于全文搜索、个人增删改动和补充个人题解 Typora, Obsidian, VS Code, MarkText
.ipynb (Jupyter) 题目与代码单元格交互,可直接在本地按 Shift+Enter 逐题运行调试 Jupyter Notebook, JupyterLab, VS Code Jupyter扩展
⚠️ 安全与文件甄别提醒

从第三方开源社区或网盘下载资料时,仅下载 .pdf、.md、.ipynb 或 .zip 文本格式。切勿下载或运行扩展名为 .exe、.bat、.vbs 等可执行文件,谨防虚假捆绑软件与恶意木马。

五、离线资料的高效练习与学习闭环

下载到完整的PDF或离线文档仅是第一步,编程学习的关键在于“脱离参考答案独立敲代码”。很多初学者把100题当成小说看,结果合上书后依然写不出程序。

怎么下载菜鸟教程Python 100例的PDF或离线学习资料?
图4:Python 100例进阶学习路径与“审题-编码-复盘-重构”闭环机制

六、常见问题与注意事项

在离线使用或制作Python 100例资料时,读者往往会遇到以下两个容易困扰的问题:

  • Python 2 与 Python 3 语法差异:菜鸟教程部分历史案例早期基于Python 2编写(如 print "Hello" 无括号语法、xrange() 等)。在离线练习时,请统一采用现代 Python 3.x 语法标准进行重构(例如使用 print() 函数和 range())。
  • 代码缩进丢失或Tab错乱:从PDF中复制带缩进的代码到编辑器时,有时制表符或空格会被PDF排版引擎压缩为单个空格,导致出现 IndentationError。因此强烈建议看懂逻辑后在本地编辑器手动敲写,而不是直接复制粘贴。

总结来说,获取菜鸟教程Python 100例离线资料并没有门槛阻碍。如果时间紧促、仅需偶尔参阅,使用浏览器的“打印为PDF”即可快速保存;如果想要一份排版清爽、无广告且带分页的书籍式PDF,利用上文提供的Python抓取清洗脚本是最优解;而如果偏好在Jupyter等交互式环境中练习,直接检索下载社区开源的 .ipynb 仓库最为契合。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。