我有以下脚本,用于查找页面上的图像并下载:
from lxml import html
import urllib
import urllib2
url = 'http://www.example.com/pages/page0987/'
usock = urllib2.urlopen(url)
data = usock.read()
usock.close()
tree = html.fromstring(data)
src = tree.xpath('/html/body/div[2]/div[4]/div/div/img/@src')
urllib.urlretrieve(src, "local-filename.jpg")
我得到一个网页,访问<img>
此页面上的一个元素(我可以使用XPath查询来找到它),然后得到src
这个元素的一个属性,然后尝试使用该url从源代码下载图像。
但是出了点问题;Python说:
Traceback (most recent call last):
File "C:\Users\Sergey\Desktop\dlImg.py", line 15, in <module>
urllib.urlretrieve(src, "local-filename.jpg")
File "C:\Python27\lib\urllib.py", line 94, in urlretrieve
return _urlopener.retrieve(url, filename, reporthook, data)
File "C:\Python27\lib\urllib.py", line 228, in retrieve
url = unwrap(toBytes(url))
File "C:\Python27\lib\urllib.py", line 1060, in unwrap
url = url.strip()
AttributeError: 'list' object has no attribute 'strip'
您的tree.xpath()
查询返回一个列表,而不是单个匹配项。至少第一项的索引:
urllib.urlretrieve(src[0], "local-filename.jpg")
或在结果上使用循环。考虑到该列表也可以为空(找不到匹配项)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句