- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我运行 eclipse 或在 iPython 中运行我的脚本时,它会失败:
'ascii' codec can't decode byte 0xe2 in position 32: ordinal not in range(128)
我不知道为什么,但是当我简单地使用相同的 url 执行 feedparse.parse(url) 语句时,没有抛出错误。这让我很为难。
代码很简单:
try:
d = feedparser.parse(url)
except Exception, e:
logging.error('Error while retrieving feed.')
logging.error(e)
logging.error(formatExceptionInfo(None))
logging.error(formatExceptionInfo1())
这是堆栈跟踪:
d = feedparser.parse(url)
File "C:\Python26\lib\site-packages\feedparser.py", line 2623, in parse
feedparser.feed(data)
File "C:\Python26\lib\site-packages\feedparser.py", line 1441, in feed
sgmllib.SGMLParser.feed(self, data)
File "C:\Python26\lib\sgmllib.py", line 104, in feed
self.goahead(0)
File "C:\Python26\lib\sgmllib.py", line 143, in goahead
k = self.parse_endtag(i)
File "C:\Python26\lib\sgmllib.py", line 320, in parse_endtag
self.finish_endtag(tag)
File "C:\Python26\lib\sgmllib.py", line 360, in finish_endtag
self.unknown_endtag(tag)
File "C:\Python26\lib\site-packages\feedparser.py", line 476, in unknown_endtag
method()
File "C:\Python26\lib\site-packages\feedparser.py", line 1318, in _end_content
value = self.popContent('content')
File "C:\Python26\lib\site-packages\feedparser.py", line 700, in popContent
value = self.pop(tag)
File "C:\Python26\lib\site-packages\feedparser.py", line 641, in pop
output = _resolveRelativeURIs(output, self.baseuri, self.encoding)
File "C:\Python26\lib\site-packages\feedparser.py", line 1594, in _resolveRelativeURIs
p.feed(htmlSource)
File "C:\Python26\lib\site-packages\feedparser.py", line 1441, in feed
sgmllib.SGMLParser.feed(self, data)
File "C:\Python26\lib\sgmllib.py", line 104, in feed
self.goahead(0)
File "C:\Python26\lib\sgmllib.py", line 138, in goahead
k = self.parse_starttag(i)
File "C:\Python26\lib\sgmllib.py", line 296, in parse_starttag
self.finish_starttag(tag, attrs)
File "C:\Python26\lib\sgmllib.py", line 338, in finish_starttag
self.unknown_starttag(tag, attrs)
File "C:\Python26\lib\site-packages\feedparser.py", line 1588, in unknown_starttag
attrs = [(key, ((tag, key) in self.relative_uris) and self.resolveURI(value) or value) for key, value in attrs]
File "C:\Python26\lib\site-packages\feedparser.py", line 1584, in resolveURI
return _urljoin(self.baseuri, uri)
File "C:\Python26\lib\site-packages\feedparser.py", line 286, in _urljoin
return urlparse.urljoin(base, uri)
File "C:\Python26\lib\urlparse.py", line 215, in urljoin
params, query, fragment))
File "C:\Python26\lib\urlparse.py", line 184, in urlunparse
return urlunsplit((scheme, netloc, url, query, fragment))
File "C:\Python26\lib\urlparse.py", line 192, in urlunsplit
url = scheme + ':' + url
File "C:\Python26\lib\encodings\cp1252.py", line 15, in decode
return codecs.charmap_decode(input,errors,decoding_table)
部分解决:
当传递给 feedparser.parse() 的 URL 是 unicode 时,这是可重现的。当它是 ascii URL 时,它不会重现。郑重声明,您需要一个包含一些高字符 Unicode 字符的 Feed。我不确定这是为什么。
最佳答案
看起来给您带来问题的网址包含具有某种编码的文本(例如latin-1,其中0xe2
将是“小写a,顶部有一个圆圈”,又名â
),没有正确的内容类型 header (它应该在 Content-Type:
中有一个 charset= 参数,但没有)。
如果是这种情况,feedparser
无法猜测编码,会尝试默认值 (ascii
),但会失败。
this part feedparser 的文档更详细地解释了这些问题。
不幸的是,没有“ Elixir ”来解决这个普遍问题(由于破坏了 XML 规则的 bozos)。您可以 try catch 此异常,并在处理程序中单独读取 url 的内容(使用 urllib2 )并尝试使用各种可能的编码对其进行解码 - 然后当您最终以这种方式获得可用的 unicode 对象时,输入that 到 feedparser.parse
(其第一个参数可以是 url、文件流、或带有数据的 unicode 字符串)。 p>
关于python - feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857450/
当我尝试将 feedparser 库包含到交互式 Python 环境中时收到错误消息: >>>> import feedparser Traceback (most recent call last)
(所以我正在尝试学习 python。我认为阅读比我更好的人的代码会很好。我决定通读电子邮件模块...) email.feedparser 模块中 Feedparser 类的 init 函数定义为: d
过去一周我一直在使用 feedparser 浏览 RSS 提要。今天使用它时,我的整个程序无法运行,我注意到错误似乎是在程序开始时,当我获取要循环的提要长度时。 因此,例如,如果我要循环浏览 BBC
昨天我安装了 feedparser(在 OSX 10.5 上)并且运行良好,但现在它停止工作了。 这是脚本(从 feedparser 文档中复制) import feedparser d = feed
我正在尝试使用带有 python 的通用 feedparser 从 Google 新闻下载新闻语料库(以尝试进行一些自然语言处理)。我真的对 XML 一无所知,我只是用一个例子来说明如何使用 feed
我是 Feedparser 的新手,经过长时间的休息后又回到了 Python,因此非常感谢任何帮助。我已经尝试过文档,它们非常好,但我仍然有点落后。 我如何让 Feedparser 获取 rss 提要
我正在使用 python 中的 feedparser 库从本地报纸检索新闻(我的目的是对这个语料库进行自然语言处理)并且希望能够从 RSS 提要中检索许多过去的条目。 我不是很熟悉 RSS 的技术问题
我的代码卡在这个函数调用上: feedparser.parse("http://...") 这以前有效。该网址甚至无法在浏览器中打开。你会如何解决这个案子?有超时的可能吗?我想继续,就好像什么都不会发
feedparser 文档曾经在 http://feedparser.org/ 上可用但是 URL 现在说找不到资源并且没有转发地址。 有人知道文档移到了哪里或者我可以在哪里找到文档吗? 此外,使用
我尝试关注 this guide 。这是关于制作一个物理 Gmail 通知程序。当我输入相同的代码时,它发现一个错误: Traceback (most recent call last): Fil
我是第一次使用 python,我有点卡住了。 使用 feedparser 解析 RSS feed,我想获取条目 0 的第一个媒体项的 URL 并将其加载到变量中。 下面的代码似乎可以工作,但我必须按两
我想将如下获得的字符串转换为日期时间: d = feedparser.parse(xmlUrl) t = datetime.strptime(d.feed.updated, "%Y-%m-%dT%H:
我刚开始使用 feedparser,想知道是否有任何方法可以获取自动发现链接列表。 提前致谢。马西莫 最佳答案 feedparser 不能自己做,但是 feedfinder2可以: from feed
feedparser 中是否有一个选项可以只查询比 feed.updated 更新的新条目? 或者您可以设置一个参数以仅获取特定日期/今天/周等的条目吗? (Safari 的 RSS 阅读器提供此选项
对于一个项目,我想使用feedparser 。基本上我已经成功了。 在文档中section about sanitization据描述,并非所有内容类型都经过清理。如何强制 feedparser 对所
#!/usr/bin/python # -*- coding: utf-8 -*- import sys import os import cgi import string import feedp
简而言之,我的情况是这样的: 从 RSS feed 读取数据 将内容打印到终端 当然,内容不是普通的 ascii 格式,而是 utf-8,所以我得到像“öäå”这样的字符。但是当我打印文本时,它全部被
我正在尝试将 feedparser 与 python 结合使用以从 sub_reddit 获取最新的帖子。 我有下面的代码,但是当我运行它时它没有返回任何东西。 import feedparser f
我正在测试 feedparser 在我的 rss 提要上。它就像一个魅力,我得到了所有条目。 一些新闻有一个嵌入的 youtube 播放器,但这并没有出现在 feedparser 的返回值中。 我的代
问题:如何终止实例化或确保我正在创建 python 通用 feedparser 的新实例化? 信息: 我现在正在开发一个程序,可以下载和编目大量博客。除了一个不幸的错误外,它运行良好。我的代码设置为获
我是一名优秀的程序员,十分优秀!