首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图从网页上监控一个产品,效果不太好

试图从网页上监控一个产品,效果不太好
EN

Stack Overflow用户
提问于 2019-04-03 10:27:29
回答 2查看 49关注 0票数 1

requests/bs4非常陌生。我向一个网页(一家商店)提出了一个请求,并通过bs4将其解析为汤。如果汤里有“卖光了”的文字,它应该把我的“卖光”打印出来,否则“在股票里”,但即使身体里没有“卖完”这个词,它还是打印“卖光了”。

我认为格式化存在问题,我试图将其更改为soup.body.findAll(text="Sold Out")

代码语言:javascript
复制
import requests
import time
from bs4 import BeautifulSoup


r = requests.get("https://www.starcowparis.com/shoes/2030-adidas-alphaedge-4d-m.html")
src = (r.content)
soup = BeautifulSoup(src, "lxml")
soup.find_all("div")



while True:
    soup.body.findAll(text="Sold Out")
    []
    print("Sold Out")
else:
    print("INSTOCK")

它总是打印出“卖光了”,即使身体里没有“卖光”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-03 10:31:41

这是因为您有一个while循环,其中需要一个if块:

代码语言:javascript
复制
if soup.body.findAll(text="Sold Out"):
    print("Sold Out")

else:
    print("INSTOCK")
票数 1
EN

Stack Overflow用户

发布于 2019-04-03 10:31:37

while True下的语句将始终被执行,因为无论发生什么情况,True总是正确的。

您要做的是使用if子句,并检查主体是否包含模式"Sold Out"的任何匹配项。

代码语言:javascript
复制
if len(soup.body.findAll(text="Sold Out")) > 0:
    print("Sold Out")
else:
    print("INSTOCK")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55492907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档