BeautifulSoup格式错误的开始标记?

时间:2012-01-03 02:33:54

标签: python beautifulsoup

我正在尝试将Wordpress XML转换为Octopress,使用部分BeautifulSoup进行迁移。

当我运行exitwp时,我得到以下输出:

writing......................................................Traceback (most recent call last):


File "exitwp.py", line 293, in <module>
    write_jekyll(data, target_format)
  File "exitwp.py", line 284, in write_jekyll
    out.write(html2fmt(i['body'], target_format))
  File "exitwp.py", line 45, in html2fmt
    return html2text(html, '')
  File "/Users/kevinquillen/Documents/workspace/exitwp2/html2text.py", line 700, in html2text
    return optwrap(html2text_file(html, None, baseurl))
  File "/Users/kevinquillen/Documents/workspace/exitwp2/html2text.py", line 695, in html2text_file
    h.feed(html)
  File "/Users/kevinquillen/Documents/workspace/exitwp2/html2text.py", line 285, in feed
    HTMLParser.HTMLParser.feed(self, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py", line 108, in feed
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py", line 148, in goahead
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py", line 229, in parse_starttag
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py", line 304, in check_for_whole_start_tag
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py", line 115, in error
HTMLParser.HTMLParseError: malformed start tag, at line 1, column 64

我尝试使用BeautifulSoup 3.2.0和3.0.7a没有太多运气。

我也尝试在帖子上导出不同的日期范围,但在第1行仍然会收到相同的错误,但是列数会发生变化。

我唯一能想到的是一些较旧的帖子中有adsense代码,但除此之外,我怎样才能轻松找到帖子内容窒息的位置?

OSX 10.7上的Python 2.7版

编辑:也发生在没有错误标记的页面转储(仅2页)上。

更新:它似乎不喜欢锚标签。标签如下所示,内容中非常基本的链接。删除它们,它编译正确。为什么它不喜欢这个HTML?删除它们会导致编译而不会出错。

<a href="http://www.google.com" target="_blank">Google</a>

1 个答案:

答案 0 :(得分:1)

修改你的代码(在html2text.py中):

try:
    HTMLParser.HTMLParser.feed(self, data)
except:
    print 'malformed data: %r' % data
    raise

我想你会看到,'数据'包含一些奇怪的东西。如果没有,请将数据添加到您的问题中。