Python 网络爬虫基础教程:原理与实战
爬虫技术本质是通过编程自动从网页获取信息。想象一下,平时打开网页右键查看源代码时看到的 HTML 结构,爬虫就像一位帮你阅读这些内容的'机器人',能高效提取我们需要的数据。
本文将带你从零开始编写一个 Python 爬虫,即使是零基础也能理解核心逻辑。
一、爬虫的基本流程
一个标准的爬虫工作流通常包含三个步骤:
- 发送请求:向目标网页发起 HTTP 请求,获取原始内容。
- 解析网页:从返回的 HTML 或 JSON 中提取特定信息。
- 保存数据:将提取到的数据写入文件或数据库,便于后续分析。
二、常用工具库
在 Python 生态中,开发爬虫主要依赖以下两个库:
- requests:负责发送网络请求,获取网页源码。
- BeautifulSoup:用于解析 HTML 结构,快速定位并提取数据。
安装依赖
首先需要在命令行中安装这两个库。推荐使用国内镜像源以提升下载速度:
pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple
三、实战示例:抓取百度首页
接下来我们动手写一个简单的脚本,从百度首页获取标题和链接。
1. 获取网页内容
使用 requests 库发送 GET 请求是最基础的一步。
import requests
url = 'https://www.baidu.com'
response = requests.get(url)
print(response.text)
这里 requests.get(url) 会向指定网址发送请求,response.text 则返回网页的 HTML 源码。运行后你会看到一大段代码,这就是百度的页面结构。
2. 解析网页内容
拿到源码后,需要用 BeautifulSoup 来清洗数据。比如我们要提取网页标题:
from bs4 import BeautifulSoup
# 解析 HTML 内容
soup = BeautifulSoup(response.text, 'html.parser')
# 获取标题文本
title = soup.title.text
print('网页标题:', title)
BeautifulSoup(response.text, 'html.parser') 初始化解析器,soup.title.text 直接定位到 <title> 标签内的文字。输出结果通常是类似 网页标题:百度一下,你就知道。
3. 提取更多链接
除了标题,我们往往需要页面上的所有链接(<a> 标签)。这在爬取文章列表时非常有用:
# 获取所有 <a> 标签
links = soup.find_all('a')
link links:
href = link.get()
(href)


