Python如何使用Soup提取HTML标签的data-x、data-y自定义属性值
解决方法
BeautifulSoup 访问data-*类自定义属性可以用以下两种方式,操作前请先定位到目标元素:
from bs4 import BeautifulSoup # 传入你的HTML内容初始化soup html_content = '''<span class="coordinatesGrid" data-x="-33" data-y="9" data-did="276" data-villagename="A">''' soup = BeautifulSoup(html_content, 'html.parser') # 按class定位到目标span标签 target_tag = soup.find('span', class_='coordinatesGrid')
- 方法1:字典式直接取值(属性确定存在时使用)
data_x = target_tag['data-x'] data_y = target_tag['data-y']
- 方法2:
get()方法取值(属性不存在时会返回None,不会抛出异常,容错性更高)
data_x = target_tag.get('data-x') data_y = target_tag.get('data-y')
注意:不能用
target_tag.data-x的方式取值,Python语法不允许标识符携带减号,会被识别为减法运算导致报错。
执行完成后data_x、data_y就能分别拿到-33和9的对应值。
内容的提问来源于stack exchange,提问作者Yor
相关产品推荐
相关产品推荐

