此代码在Aptana上运行,但在python HTMLParser中失败
这就是重点,在Aptana3Wiyh-pyDev中,我没有例外,一切似乎都很好 但是,当我尝试直接在python中运行时,bucle会在某个点停止,我猜它可能与像ó之类的特殊角色匹配此代码在Aptana上运行,但在python HTMLParser中失败,python,aptana,Python,Aptana,这就是重点,在Aptana3Wiyh-pyDev中,我没有例外,一切似乎都很好 但是,当我尝试直接在python中运行时,bucle会在某个点停止,我猜它可能与像ó之类的特殊角色匹配 class Spider(HTMLParser): def __init__(self, url): HTMLParser.__init__(self) string=[] string2=[] self.feed(urlopen(url).r
class Spider(HTMLParser):
def __init__(self, url):
HTMLParser.__init__(self)
string=[]
string2=[]
self.feed(urlopen(url).read()
def handle_starttag(self, tag, attrs):
if tag == 'a' and attrs:
title= attrs[1][1]
link= attrs[0][1]
string.append(title)
string2.append(link)
我是python的新手,因此我无法获得比这更好的异常信息:
line 33, in __init__ self.feed(urlopen(url).read()) File "/usr/lib/python2.6/HTMLParser.py", line 108,
in feed self.goahead(0) File "/usr/lib/python2.6/HTMLParser.py", line 148,
in goahead k = self.parse_starttag(i) File "/usr/lib/python2.6/HTMLParser.py", line 252,
in parse_starttag attrvalue = self.unescape(attrvalue)'])
来自raise的输出:
但这仍然是一个丑陋的解决方案,我需要在文本中添加重音。
我试着
但是没有任何改变。试试这个:
import sys
sys.setdefaultencoding('latin-1')
一些相关阅读:。不幸的是,Max的解决方案不起作用 AttributeError:“模块”对象没有属性“setdefaultencoding” 我最终通过添加以下内容使其发挥作用:
z=urlopen(url).read().decode('utf-8')
self.feed(z)
您是否在Aptana/Pydev上使用相同版本的python?(
python2.6
)你确定它运行的是同一版本的python>吗?我为你修正了格式。另外,您发布的代码格式不正确,位于self.feed(urlopen(url).read()
…不平衡的括号。使用raise
(无参数)若要重新显示当前异常以在控制台上获取堆栈跟踪,我们需要实际的异常消息。@Mario Im在pydev中使用python2.7,但在2.6中配置了解释器,无论如何,代码在2.7中也无法运行,checkedMost系统现在使用utf-8
作为默认编码。
# -*- coding: latin-1 -*-
import sys
sys.setdefaultencoding('latin-1')
z=urlopen(url).read().decode('utf-8')
self.feed(z)