对requests/bs4非常陌生。我向一个网页(一家商店)提出了一个请求,并通过bs4将其解析为汤。如果汤里有“卖光了”的文字,它应该把我的“卖光”打印出来,否则“在股票里”,但即使身体里没有“卖完”这个词,它还是打印“卖光了”。
我认为格式化存在问题,我试图将其更改为soup.body.findAll(text="Sold Out")
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")它总是打印出“卖光了”,即使身体里没有“卖光”。
发布于 2019-04-03 10:31:41
这是因为您有一个while循环,其中需要一个if块:
if soup.body.findAll(text="Sold Out"):
print("Sold Out")
else:
print("INSTOCK")发布于 2019-04-03 10:31:37
while True下的语句将始终被执行,因为无论发生什么情况,True总是正确的。
您要做的是使用if子句,并检查主体是否包含模式"Sold Out"的任何匹配项。
if len(soup.body.findAll(text="Sold Out")) > 0:
print("Sold Out")
else:
print("INSTOCK")https://stackoverflow.com/questions/55492907
复制相似问题