You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BeautifulSoup查找含NEXT文本的a标签匹配失败问题咨询

问题原因
  • 变量名不匹配:你定义的正则表达式存储在next_regex变量中,但find_all调用时传入的是未定义的nextpg_regex,首先就会触发变量未定义报错,即使忽略报错也拿不到正确的匹配规则
  • 匹配逻辑错误:你把包含NEXT的正则规则用在了href属性过滤上,但是目标a标签的href值是/department/office/pg2,根本不包含NEXT字符串,NEXT是a标签的文本内容,完全匹配错了位置。
解决方法

方案1:按a标签文本内容匹配

适合class不固定、下一页按钮文本固定的场景:

import re
from bs4 import BeautifulSoup
import urllib.request

parser = "lxml" 
html_bodySoup = BeautifulSoup(urllib.request.urlopen(url), parser)
# 匹配文本包含NEXT的a标签,re.IGNORECASE可选,避免大小写不匹配
links = html_bodySoup.find_all('a', string=re.compile(r'NEXT', re.IGNORECASE))
# 提取href属性
for link in links:
    print(link.get('href'))

方案2:按class属性匹配更稳定

如果下一页按钮的class固定,不需要正则也能精准匹配,抗干扰性更强:

parser = "lxml" 
html_bodySoup = BeautifulSoup(urllib.request.urlopen(url), parser)
# 多class匹配用列表传入参数
links = html_bodySoup.find_all('a', class_=['pg-normal', 'pg-bton'])
for link in links:
    # 加一层文本校验,避免匹配到同class的其他按钮
    if 'NEXT' in link.get_text():
        print(link.get('href'))

内容的提问来源于stack exchange,提问作者Varsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:18:03