使用BeautifulSoup从HTML提取股票价格代码失效,如何修正?
BS4股票价格提取代码问题排查
存在的问题
- 字典语法错误:属性查询的字典中错误使用
=分隔键值,Python字典需使用:分隔键与值,原代码中{'class'= "Item_Price10"}属于非法语法 - 标签名大小写不匹配:BeautifulSoup解析HTML后会默认将标签名转为小写,使用大写
I无法匹配到对应<i>标签 - 无空值兼容逻辑:若页面结构变动未找到目标
<i>标签,直接调用.text属性会抛出AttributeError导致程序崩溃
优化后可运行代码
# id在HTML中全局唯一,直接用find定位目标外层div,不需要find_all遍历 content = soup.find("div", id = "ctl00_ContentPlaceHolder1_ctl03_divHO") if content: # 修正标签名大小写和字典语法错误 stock_node = content.find('i', {'class': "Item_Price10"}) if stock_node: stock = stock_node.text print(stock) else: print("未找到价格节点") else: print("未找到目标外层div")
内容的提问来源于stack exchange,提问作者Tien Dang
相关产品推荐
相关产品推荐

