首页 > 解决方案 > 查找多页表中的页数

问题描述

我正在尝试提取多页表 URL 中的页面数

HTML=<span style="float:right">Page 1 of 63,917</span>

需要提取63917。

我用了

soup = bsoup(r.text)
pages=re.findall(r"Page 1 of\s(.+)<\/span>", str(soup))
print(pages)

但是 print(pages) 会返回大量的 HTML,直到正文结束

##'63,917</span></div><table class="table table-striped##

为什么我的正则表达式不起作用?以及如何仅从 HTML 响应中提取 #?

标签: pythonhtmlregex

解决方案


您的正则表达式不起作用,因为您在分组括号中使用了贪婪捕获(.+)。您编写它的方式.+是匹配所有内容Page 1 of\s(直到</span>文档中的最后一个标签)。您需要通过在之后添加 a 来使用非贪婪捕获,如下所示:?+

Page 1 of\s(.+?)<\/span>

推荐阅读