页面的源代码就是我所拥有的。
tree = etree.HTML(source_page_text)
image_list = tree.xpath('//img[@src]')
通过使用xpath,我可以找到所有的' img'标记为' src'属性如上。但是图像大小的信息是css。在javascript中,我可以通过使用例如
轻松找到大小document.querySelectorAll("img")[83].height
因为它是一个对象。
那么如何在python中找到图像的大小?
答案 0 :(得分:1)
由于您是在服务器上而不是在浏览器中,因此您必须(重新)下载图像并使用像PIL这样的库来获取其大小。
from PIL import Image
import urllib.request
import io
def image_size(url)
with urllib.request.urlopen(url) as u:
f = io.BytesIO(u.read())
img = Image.open(f)
return img.size # (width, height) tuple
注意:您需要在系统上安装PIL(pillow fork)库。
另一种选择是下载样式表并使用像tinycss这样的解析器来尝试将css规则与选择器相关联以得出大小。我认为这会很棘手。
答案 1 :(得分:0)
Python本身并不提供使用样式表,脚本等呈现网页的方法。
您可以尝试使用内置了Web浏览器的GUI框架(PyQt,PyGTK),允许在相应的小部件中执行JS代码。