0

我正在尝试自动检索新闻文章的图像链接,并使用getimage函数编写了一个 python 模块图像处理器,它为新闻文章识别图像链接:

req = Request('http://top-channel.tv/artikull.php?id=264806&ref=fp', headers={'User-Agent': 'Mozilla/5.0'})
c = urlopen(req).read()
soup=BeautifulSoup(c)
m = soup.find('link',{'rel' : 'image_src'})
return m['href']

当我从 shell 运行时,它工作正常:

import imageprocessor
img=imageprocessor.getimage('http://top-channel.tv/artikull.php?id=264806&ref=fp','Top Channel')
img
'http://www.top-channel.tv/foto/lajme/ELBASA-NDERTIMET-07_17.jpg'

问题是当我尝试从 views.py 模块(Django 框架)以相同的方式调用此函数时,浏览器显示此错误消息:

UnicodeEncodeError at /fillimi/

'ascii' codec can't encode character '\xeb' in position 25: ordinal not in range(128)

我似乎 c = urlopen(req).read() 返回 assci 编码的字符串。我试过了:

img=img.encode('utf-8')

但这没有帮助。

4

1 回答 1

0

好像你必须先解码你的字符串。尝试这个:

img = urllib.urlopen(link).read()
img = img.decode(<source encoding>)
img = unicode_str.encode("utf8")

一个例子可能是:

img= '\xa0'
img = img.decode("windows-1252")
img = img.encode("utf8")
于 2013-10-01T10:47:56.533 回答