如何用BeautifulSoup从URL中提取id数字
提取a标签href中的id参数值
方法一:用urllib.parse解析查询参数(最健壮)
这是最通用的方法,不管参数在href中的位置如何变化,都能准确提取:
from urllib.parse import urlparse, parse_qs # 获取a标签的href属性值 href = soup.td.a.get('href') # 解析URL的查询字符串部分 query_components = parse_qs(urlparse(href).query) # 提取id参数的值(parse_qs返回的是列表,取第一个元素) target_id = query_components['id'][0] print(target_id) # 输出 37627
方法二:字符串分割(适合固定格式场景)
如果href的参数格式固定,id始终在最后,可以用简单的字符串分割:
href = soup.td.a.get('href') target_id = href.split('id=')[-1] print(target_id) # 输出 37627
方法三:正则表达式匹配
用正则捕获id后的数字部分,适合需要灵活匹配的场景:
import re href = soup.td.a.get('href') # 匹配id=后面的连续数字 match_result = re.search(r'id=(\d+)', href) if match_result: target_id = match_result.group(1) print(target_id) # 输出 37627
内容的提问来源于stack exchange,提问作者Travis Kessler
相关产品推荐
相关产品推荐

