如何从Indeed网页分页元素中提取页码整数?
解决方案
单行实现代码
page_numbers = [int(tag.get_text(strip=True)) for tag in indeed_soup.find("ul", {"class": "pagination-list"}).find_all(["a", "b"]) if tag.get_text(strip=True).isdigit()]
逻辑说明
- 首先定位到页码容器
ul.pagination-list - 查找容器下所有
<a>和<b>标签,同时覆盖其他页码和当前页码的载体元素 - 对每个标签的文本做去空格处理后,用
isdigit()过滤掉「上一页」「下一页」这类非数字功能按钮 - 符合数字规则的文本直接转为整数,最终得到的就是所有可用的整数页码列表
原代码错误原因
你之前的两段代码存在两个问题:
- 第一段错误提取了ul标签的
aria-label属性,该属性和实际页码内容无关 - 第二段的
get_text没有加调用括号,即使补全括号也只会把所有页码的文本拼接为单个字符串,无法拆分得到单独的页码值
内容的提问来源于stack exchange,提问作者Seowoo Jang
相关产品推荐
相关产品推荐

