如何用Python的BeautifulSoup从网站提取整数格式数字?
解决方法
问题根源是你直接输出了<p>标签对象,而非标签内的纯文本内容。按以下步骤修改即可实现数值判断逻辑:
- 提取
<p>标签内的纯文本:通过soup.p.text(或soup.p.get_text())从<p>0</p>这类标签中拿到纯字符串形式的数字,比如"0" - 转换为int类型:用
int()函数将字符串数字转为整数,之后就能正常做数值比较
替换原代码中else块的最后两行,修改后的完整代码片段如下:
else: url = 'http://******.**/ocean/oceansite_balance.php?to=%s' % (g_index) resp = req.get(url) soup = BeautifulSoup(resp.text, 'lxml') # 提取文本并转成int,strip()去除可能的空格或换行符 balance = int(soup.p.text.strip()) print(balance) # 执行数值判断逻辑 if balance > 0: # 这里写余额大于0时的操作 print("余额大于0") else: # 余额为0或负数时的操作 print("余额不足")
额外建议:如果网站返回的内容可能存在异常(比如<p>标签不存在、内容不是纯数字),可以加个异常处理避免程序崩溃:
else: url = 'http://******.**/ocean/oceansite_balance.php?to=%s' % (g_index) resp = req.get(url) soup = BeautifulSoup(resp.text, 'lxml') balance = -1 # 初始化默认值 try: balance = int(soup.p.text.strip()) except (ValueError, AttributeError): print("无法获取有效余额数据") # 继续执行判断逻辑 if balance > 0: print("余额大于0") else: print("余额不足或获取失败")
内容的提问来源于stack exchange,提问作者krausser
相关产品推荐
相关产品推荐

