我有一个方法,旨在从一些html抓取所有img元素,并添加一个css样式,以确保图像大小调整。它的工作很好,直到最后的测试:最大尺寸< img_size - 我已经尝试过所有不同的方式来表达这个简单的事情,但它总是评估为真 - 这意味着所有图像都调整大小,无论其原始大小。Python布尔表达式总是为真(当它不应该是)
代码:
def adjust_html(self, html_text):
# pull image links and adjust those larger than 30k
# to be width=100%
html = etree.HTML(html_text)
r = html.xpath('.//img')
changed_text = False
for elem in r:
for tag, value in elem.attrib.iteritems():
if tag == 'src':
largest_size = 30720
img_size = 0
img_url = value
if self.bad_urls.has_key(img_url):
break
try:
usock = urllib2.urlopen(img_url)
img_size = usock.info().get('Content-Length')
except:
self.log.debug("***** 406 for " + img_url)
self.bad_urls[img_url] = True
break
if img_size is None:
break
else:
**if (largest_size < img_size):**
self.log.debug("*** " + img_url + " ***")
self.log.debug("********** img size = " + str(img_size) + " **********")
elem.set("style","width:100%")
changed_text = True
break
if changed_text == True:
html_text = etree.tostring(html)
return html_text
我知道必须有东西在这里简单的错误 - 我只是没有看到它:)
标记的代码有趣的部分用''**通常是一个坏主意。在有趣的部分之前和之后放置一些'#comments'。 – eumiro 2011-06-10 06:49:03
是img_size实际上是一个int?首先将您的调试语句更改为'img_size =%d'%img_size – 2011-06-10 06:51:46