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")


即使主体中没有“售罄”,它也始终打印出“售罄”

最佳答案

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

if soup.body.findAll(text="Sold Out"):
    print("Sold Out")

else:
    print("INSTOCK")

关于python - 尝试从网页监视产品,未按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55492907/

10-13 00:23