跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python 爬虫入门与实战教程

介绍 Python 爬虫基础,涵盖请求发送、内容解析、数据保存三大核心流程。详解 requests 与 BeautifulSoup 库的使用,区分静态与动态网页爬取方案(如 Selenium),并提供反爬策略(伪装 UA、延迟、代理 IP)。最后演示将数据保存至 CSV 或 SQLite 数据库的方法,适合初学者快速上手。

内存管理发布于 2026/3/24更新于 2026/6/35.1K 浏览
Python 爬虫入门与实战教程

爬虫就像一位自动化的'信息采集员',能帮你自动从网页中提取所需内容,比如批量抓取文章、整理数据表格等。Python 凭借简洁的语法和强大的库支持,成为爬虫开发的首选语言。本文将从基础到实战,带你快速掌握 Python 爬虫核心技能。

一、爬虫核心工作流程

爬虫的工作逻辑很简单,三步就能搞定:

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

二、必备爬虫库安装与介绍

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

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

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

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

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

以抓取百度首页的标题和所有链接为例,手把手教你落地实操:

1. 第一步:获取网页内容

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

import requests

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

关键说明:requests.get(url) 是核心方法,response.text 会返回网页的纯文本 HTML 代码。

2. 第二步:解析网页,提取关键信息

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

from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, 'html.parser')

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

# 2. 提取所有链接(<a>标签的 href 属性)
links = soup.find_all()
 link  links:
    link_text = link.text
    link_url = link.get()
    ()
'a'
for
in
'href'
print
f'文本:{link_text} | 链接:{link_url}'

关键说明:soup.find_all('a') 可批量匹配指定标签,link.get('href') 用于提取标签的属性值。

四、爬虫分类与适用场景

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

  1. 静态网页爬虫:网页数据直接写在 HTML 中(如简单博客、静态官网),用 requests+BeautifulSoup 即可轻松爬取,适合入门练习;

  2. 动态网页爬虫:数据通过 JavaScript 加载(如滚动加载的列表、登录后显示的内容),需用 Selenium 模拟浏览器运行。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.example.com')
print('动态网页标题:', driver.title)
driver.quit()
  1. 大规模爬虫:需爬取海量数据(如整站文章、行业数据),用 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)

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

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

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

with open('百度链接.csv', 'w', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(['链接文本', '链接地址'])
    for link in links:
        writer.writerow([link.text, link.get('href')])
2. 保存到数据库(适合长期存储、海量数据)

以轻量级 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. 1. 基础库(必装)
  4. 2. 安装命令
  5. 3. 进阶工具(按需安装)
  6. 三、实战:编写第一个简单爬虫
  7. 1. 第一步:获取网页内容
  8. 2. 第二步:解析网页,提取关键信息
  9. 1. 提取网页标题
  10. 2. 提取所有链接(<a>标签的 href 属性)
  11. 四、爬虫分类与适用场景
  12. 五、常见反爬问题与解决方案
  13. 六、数据保存:把爬取的信息存起来
  14. 1. 保存到 CSV 文件(适合表格类数据)
  15. 2. 保存到数据库(适合长期存储、海量数据)
  16. 七、核心知识点总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • C++ 继承机制详解
  • Star-Office-UI: 像素风格 AI 办公室看板,可视化 AI 助手工作状态
  • Java 应用报错 No buffer space available 排查与解决
  • 数据结构:顺序表定义、操作与经典题解
  • C++ gflags 命令行参数解析与 spdlog 日志库实战
  • AI 驱动的代码审查和错误检测工具评测
  • GitHub Copilot 学生身份认证流程与材料准备指南
  • 写真馆在线管理系统设计与实现
  • Git SSH 公钥认证失败解决方案:配置密钥以访问 GitHub 仓库
  • 基于 Scrapling 为 AI Agent 配置网页爬虫技能指南
  • 2023 第十四届蓝桥杯国赛 C/C++ 大学 B 组真题及题解
  • CentOS 7 安装 JDK 8(jdk-8u461-linux-x64)教程
  • BFF 架构详解:为前端定制的后端服务
  • Qwen3 与 Qwen Agent 智能体开发实战:接入 MCP 工具
  • 希尔排序算法详解:原理、实现与优化
  • Windows 部署 OpenAkita 并接入飞书模块,搭建本地 AI 助手
  • AI 大模型开发指南:核心技术与实践路径
  • 前缀和算法详解:一维、二维及哈希优化应用
  • OpenClaw 及新兴 Claws 框架底层架构解析
  • ESLint 深度指南:从原理配置到工程化实践

相关免费在线工具

  • 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