通过使用分页机制,Python 爬虫可以爬取多页网站:查找并提取 pagination 链接。循环遍历这些链接并获取页面内容。使用 HTML 解析器提取所需数据。保存或处理提取的数据。
如何使用 Python 爬虫爬取多页
爬取多页网站时,Python 爬虫需要使用分页机制。以下步骤介绍如何实现:
1. 查找分页链接
检查网站的 HTML 源代码以寻找 pagination 链接标签()。
这些链接通常带有 "next"、"page" 或 "older" 等文本。
提取这些链接的 URL 地址,并将它们存储在一个列表中。
2. 循环遍历分页链接
使用 while 循环或 for 循环迭代分页链接列表。
对于每个链接,向该 URL 发出请求以获取页面内容。
3. 提取数据
使用 HTML 解析器(如 BeautifulSoup)来提取所需数据。
该数据可能包括文本、图像或其他内容。
4. 保存或处理数据
将提取的数据存储到数据库、文件或其他数据存储中。
也可以实时处理数据,例如显示在 GUI 中。
示例代码:
import requests
from bs4 import BeautifulSoup
# 查找分页链接
pagination_links = []
response = requests.get("https://example.com/page1")
soup = BeautifulSoup(response.text, "html.parser")
for a in soup.find_all("a"):
if "next" in a.text or "page" in a.text:
pagination_links.append(a["href"])
# 循环遍历分页链接并提取数据
for link in pagination_links:
response = requests.get(link)
soup = BeautifulSoup(response.text, "html.parser")
# 在此处提取所需数据
yield from 在树遍历中省去了手动展开子生成器的繁琐与风险,自动处理委托调用、异常传播、StopIteration 捕获及协程方法转发,确保扁平化输出和行为一致性。 yield from 在树遍历中到底省了什么 直接说结论:yield from 不是语法糖,它把递归生成器的“委托调用”从手动循环 + yield 拆解成一条语句,避免了中间迭代器被提前耗尽、异常传播断裂、或 StopIter...