如何用Python抓取class为investor-item的div的usrid属性值?
抓取HTML自定义属性值的解决方法
嘿,我明白你的困扰——你已经定位到了目标div,但不知道怎么取出usrid属性里的75500对吧?先看看你的目标HTML片段:
10,000€03 December 2018
其实你用soup.findAll('div',{"class":"investor-item"})的方向是对的,只是还差最后一步:从找到的元素里提取属性值。下面给你两种实用的写法:
情况1:页面只有一个investor-item元素
直接用find定位单个元素,然后通过字典索引或者get()方法取属性值:
from bs4 import BeautifulSoup # 假设你的HTML内容存在html变量中 soup = BeautifulSoup(html, 'html.parser') target_div = soup.find('div', class_='investor-item') # 方式1:直接索引属性(属性不存在会报错) if target_div: usrid = target_div['usrid'] print(usrid) # 输出75500 # 方式2:用get()方法更安全(属性不存在时返回None,不会崩溃) usrid_safe = target_div.get('usrid')
情况2:页面有多个investor-item元素
用findAll拿到所有元素后遍历,逐个提取属性:
investor_divs = soup.findAll('div', class_='investor-item') for div in investor_divs: usrid = div.get('usrid') if usrid: # 过滤掉没有usrid属性的元素 print(usrid)
简单来说,findAll返回的是元素对象的列表,每个元素对象就像一个字典,你可以通过键名(属性名)来获取对应的属性值。
内容的提问来源于stack exchange,提问作者user229519
相关产品推荐
相关产品推荐

