imgfound=False
imgexists=0
img_ext=['.jpg','.jpeg','.png','.gif']
while True:
httpfind=html.find('http',imgexists)
if httpfind==-1:
break
imgexists=httpfind
imgexist=html.find('"',imgexists)
imgurl=html[imgexists:imgexist]
imgexists+=len(imgurl)
for extscan in img_ext:
if not imgurl.find(extscan)==-1:
imgfound=True
break
#print imgfound
if imgfound==False:
continue
print imgurl
我想在html文档中找到图像的链接。但事情并没有像它应该的那样发挥作用。就像它打印所有链接一样,无论它们中是否有img_ext子字符串。我在imgfound中打印了值,对于所有链接,它都是True。我哪里出错?
答案 0 :(得分:3)
表达式
not imgurl.find(extscan) == -1
由于运算符优先级,将为每个整数求值False
。
如何解决?
将其更改为
imgurl.find(extscan) != -1
或者,将其更改为
not(imgurl.find(extscan) == -1)
答案 1 :(得分:2)
Christian的回答是正确的,但值得注意的是,这不是好的Python风格。首选形式是:
if extscan not in imgurl
您的版本看起来像Java-ism。