python - 在多页表中查找页数

标签 python html regex

我正在尝试提取多页表 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 响应中仅提取 #?

最佳答案

您的正则表达式不起作用,因为您在分组括号中使用了贪婪捕获 (.+) .按照你写的方式,.+正在匹配 Page 1 of\s 中的所有内容向前(直到文档中的最后一个 </span> 标记)。您需要使用 non-greedy通过添加 ? 进行捕获在+之后,像这样:

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

关于python - 在多页表中查找页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54625115/

相关文章:

python - 不确定 'and' 操作

python - 根据指标对候选人列表进行排序 - Python?

javascript - 正则表达式删除字符串中字符的开头到结尾

python - 最常见的 Python 文档字符串格式是什么?

python - Scrapy:将来自不同链接的抓取数据关联到 1 个项目/模型

html - 如何垂直居中我的容器 div

HTML 和 CSS 轮播问题

javascript - 除了使用 "Minimal 3D Perspective Carousel with jQuery CSS3 3D Carousel"的默认行为外,还允许 href anchor 旋转传送带

Java 正则表达式 : replace any B NOT between A and Z

regex - 理解正则表达式前瞻 (?! | ?=)