python - 查找多页表中的页数
问题描述
我正在尝试提取多页表 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>
文档中的最后一个标签)。您需要通过在之后添加 a 来使用非贪婪捕获,如下所示:?
+
Page 1 of\s(.+?)<\/span>
推荐阅读
- r - 将数据转换为起止/长格式
- android - 如何在自定义视图中获取 android:layout_width 和 android:layout_height?
- mobile - 如何修复汉堡菜单不向右移动?
- python - _name_estimators 在下面的代码中做了什么?
- class - python分数程序中的问题
- c# - 如何使用 ASP.NET 将 base 64 字符串保存到图像
- php - 如何编译带有附加扩展名的 php
- python - Python - 比较两个字典,创建一个新字典,其中包含仅出现在一个字典中的唯一项
- google-cloud-platform - 如何使用 Google 数据目录服务为 Google 云存储中的资产(对象、存储桶等)创建数据目录
- spring - *.configuration.SecondaryDataSource 中方法 entityManagerFactory 的参数 0 需要找不到类型为“*.EntityManagerFactoryBuilder”的 bean