我正试图从他们的产品名称中获得袋子的样式(例如,“Platinum Faux漆皮手提包”中的“Tote”)。这是我的代码:
from urllib.request import urlopen
from bs4 import BeautifulSoup
saksurl="http://www.saksfifthavenue.com/Handbags/shop/_/N-52jzot/Ne- 6lvnb5?FOLDER%3C%3Efolder_id=2534374306622829"
html = urlopen(saksurl)
bsObj = BeautifulSoup(html.read(),"html.parser")
for product in bsObj.select("#product-container [id^=product-]"):
Style="None"
Name=product.find("p",{"class":"product-description"}).get_text()
print(Name)
if Name.find("Tote"):
Style="Tote"
else:
Style="None"
print(Style)
虽然对于不是Totes和手提包的行李箱而言它应该给我没有,但它给了我所有袋子的手提袋。
答案 0 :(得分:1)
您应该使用:
if "Tote" in Name:
...
而不是str.find
。如果找到,str.find
将返回索引,否则它将返回-1
。无论哪种方式,任何不是0的数字都将评估为True
,这就是您从中获取错误的位置。