Python爬虫极简入门:三步搞定百度首页抓取
学习爬虫其实并没有想象中那么复杂。只要理清思路,把它拆解成几个简单的步骤,就能轻松写出自己的第一个爬虫程序。今天我们就用最简单的代码,一步步抓取百度首页的数据。
第一步:环境搭建。 在开始写代码之前,我们需要准备好工具。首先确保你的电脑上已经安装了Python。接着,打开命令行或终端,输入 pip install requests beautifulsoup4 并回车。这里我们用到了两个最经典的库:requests 负责去网页上“拿”数据,而 beautifulsoup4 负责把拿回来的数据“洗”干净。
第二步:发送请求并伪装身份。 网页服务器很聪明,如果发现是机器人来访问,可能会直接拒绝。所以我们在发请求时,需要带上一个“面具”(也就是请求头 Headers),假装自己是一个正常的浏览器。通过 requests.get() 方法,我们就可以向目标网址发送访问请求,并把网页的源代码(HTML)完整地拿回到本地。
第三步:解析数据并提取内容。 拿回来的网页源代码是一堆密密麻麻的标签,直接看会让人眼花缭乱。这时候就需要用到 BeautifulSoup 了。它能把网页变成一棵结构清晰的树,我们只需要告诉它想要什么标签,它就能帮我们精准找出来。
下面是完整的实战代码:
import requests
from bs4 import BeautifulSoup
url = "http://www.baidu.com" # 抓取百度首页的所有链接
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
}#这里需要通过自己电脑浏览器打开想要爬取的网站,F12打开开发者工具,,找到网络面板,刷新后复制真实的请求头
print(f"正在向 {url} 发起请求…")
try:
response = requests.get(url, headers=headers, timeout=10)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
links = soup.find_all("a")
print(f"抓取成功,共找到 {len(links)} 个链接")
count = 0
for link in links:
text = link.get_text(strip=True)
href = link.get("href")
if href and text:
print(f"文字:{text} | 地址:{href}")
count += 1
if count >= 5:
break
else:
print(f"请求失败,状态码:{response.status_code}")
except requests.RequestException as e:
print(f"网络请求出错:{e}")
通过这三步,我们就完成了一个完整的基础爬虫闭环。
知识点:
Requests:Python 中最常用的网络请求库。核心作用是模拟浏览器向目标网址发送 HTTP 请求(如 requests.get() ),并获取服务器返回的网页源代码(HTML)。
BeautifulSoup (bs4):强大的网页解析库。核心作用是将杂乱的 HTML 文本转化为结构化的对象,方便我们精准提取想要的数据(如使用 find_all() 查找标签)。
第一步:环境搭建。安装好 Python 及所需的第三方库( pip install requests beautifulsoup4 )。
第二步:发送请求(伪装身份)。在请求时带上 Headers (特别是 User-Agent ),将 Python 脚本伪装成正常的浏览器,防止被服务器拦截。
第三步:解析数据。使用 BeautifulSoup 解析返回的 HTML 文本,通过提取标签属性(如 get(‘href’) 获取链接, get_text() 获取文字)完成数据的清洗和提取。
字典传参:使用 headers={} 字典来传递请求头信息。
条件过滤:在提取数据时,使用 if text: 等判断语句,过滤掉空链接或无效数据,保证提取结果的干净。
属性获取:区分 get_text() (获取标签包裹的文本)和 .get(‘属性名’) (获取标签内部的属性,如 href)。

![pip install安装markitdown时出现ERROR: ‘packages/markitdown[all]‘ is not a valid editable requirement解决方案-171主机测评](https://www.171host.com/wp-content/uploads/2026/08/20260823004656-6a8a430045592-220x150.png)
![pip install安装markitdown时出现ERROR: ‘packages/markitdown[all]‘ is not a valid editable requirement解决方案-171主机测评](https://www.171host.com/wp-content/uploads/2026/08/20260823004339-6a8a423bd3e97-220x150.png)

