feedparser - 各种错误

-1 投票
1 回答
939 浏览
提问于 2025-04-15 23:30

我需要用到feedparser(可以在http://www.feedparser.org找到)来做一个项目,并且想把第三方模块放在一个单独的文件夹里。我通过把一个文件夹添加到我的python路径中,并把相关的模块放在那里,包括feedparser,来实现这个目标。

第一次尝试导入feedparser时出现了

>>> import feedparser
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/users/me/modules/feedparser.py", line 1
    ed socket timeout; added support for chardet library
            ^
SyntaxError: invalid syntax

我在文件底部的注释中发现了“socket timeout; added...”这段文字,于是把这些注释删掉,然后再试了一次:

>>> import feedparser
Traceback (most recent call last):
    File "", line 1, in 
    File "/home/users/me/modules/feedparser.py", line 1
    = [(key, value) for key, value in attrs if key in self.acceptable_attributes]
    ^
IndentationError: unexpected indent

好吧,出现了一些缩进错误。我确保了相关函数的缩进是正确的(把一些换行符移到没有缩进的位置)。然后再试了一次:

>>> import feedparser
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/users/me/modules/feedparser.py", line 1
    , value) for key, value in attrs if key in self.acceptable_attributes]
    ^
SyntaxError: invalid syntax

我在谷歌上搜索了很多,还是找不到语法上有什么问题:

def unknown_starttag(self, tag, attrs):
    if not tag in self.acceptable_elements:
        if tag in self.unacceptable_elements_with_end_tag:
            self.unacceptablestack += 1
        return
    attrs = self.normalize_attrs(attrs)
    attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes]
    _BaseHTMLProcessor.unknown_starttag(self, tag, attrs)

现在该怎么办呢?我的方法完全错了吗?为什么我在一个看起来经过充分测试和信任的模块中不断出现这些错误?

1 个回答

1

第一个错误听起来像是你的feedparser.py文件损坏了。这个文件的最后一行应该完全是一个注释:

#4.1 - MAP - removed socket timeout; added support for chardet library

看起来是因为引入了一个换行符,导致文件最后出现了一个无效的语句:

#4.1 - MAP - remov
ed socket timeout; added support for chardet library

撰写回答