使用BeautifulSoup爬取时如何提取纯GMC编号并去除b标签
提取纯GMC编号的解决方案
针对你的需求,这里提供几种简洁有效的修改方案,基于BeautifulSoup实现纯编号提取:
方法一:定位b标签后获取后续文本(推荐)
直接找到<b>标签,然后获取它的相邻兄弟文本节点,这种方式最精准,不受文本换行或分隔符变化影响:
media_body = soup.find("div", {"class":"media-body"}) b_tag = media_body.p.find('b') gmc_number = b_tag.next_sibling.strip()
方法二:拆分现有文本提取编号
如果保留原有文本获取逻辑,可以通过拆分文本过滤掉"GMC:"部分:
media_body = soup.find("div", {"class":"media-body"}) gmc_text = media_body.p.text.strip() # 按换行拆分取最后一段 gmc_number = gmc_text.split('\n')[-1].strip() # 或者按冒号拆分取后半部分 # gmc_number = gmc_text.split(':', 1)[-1].strip()
方法三:过滤p标签内的非b标签内容
遍历p标签的所有子节点,排除<b>标签后提取剩余文本:
media_body = soup.find("div", {"class":"media-body"}) gmc_number = ''.join([node.strip() for node in media_body.p.contents if node.name != 'b']).strip()
以上三种方法都能得到纯编号123456,其中方法一的定位逻辑更可靠,建议优先使用。
内容的提问来源于stack exchange,提问作者Nikhil V
相关产品推荐
相关产品推荐

