如何用Python+BS4获取href中完整的唯一ID整数?
问题分析
你用[-18:-1]切片获取href中的整数时结果缺失最后一位,原因是切片的结束索引-1会排除字符串的最后一个字符,而目标整数的最后一位恰好处于这个位置。原href中被***包裹的整数是180254557458746932(共18位),[-18:-1]只会取到倒数第18位到倒数第2位的字符,因此少了最后一位2。
解决方案
方法1:调整切片范围
直接从倒数第18位取到字符串末尾,去掉结束索引的-1即可:
uniqueid = link_element['href'][-18:]
这样就能完整获取18位的整数字符串。
方法2:更鲁棒的分割法(推荐)
利用href中整数被***包裹的特征,用字符串分割提取,无需依赖固定长度:
href = link_element['href'] uniqueid = href.split('***')[1]
这种方法不受整数长度变化的影响,适用性更强。
补充:实际使用bs4的正确写法
如果是通过bs4解析真实HTML获取的a标签元素,代码示例如下:
from bs4 import BeautifulSoup import requests # 假设已获取页面内容 soup = BeautifulSoup(page_content, 'html.parser') link_element = soup.find('a', class_='Anchor NavList__Anchor') if link_element: href = link_element.get('href') uniqueid = href.split('***')[1]
内容的提问来源于stack exchange,提问作者simsar
相关产品推荐
相关产品推荐

