YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

HTMLParser.HTMLParseErrorがでた

状況

はてなブックマークにタグ検索用のAPIがないからつくってみたんだけど、前に動いてたのに急にHTMLParseError吐くようになった。
問題のエラーはこんな感じ。

EOF in middle of construct, at line 57, column 1

原因

ここにあるのと原因は一緒でした。

Ok , but is one single error that blocks this.
Finally I found it , it is :
<td colspan="2"align="center"
if I put :
<td colspan="2" align="center"
    
p = re.compile('"align')
content = p.sub('" align', content)

投稿時のはてなブックマークのHTMLソースの抜粋です。

(略)
</script>
</head>
<body id="hatena-bookmark"class="fixed-header">
    <div id="wrapper">
        <div id="header">
(略)

bodyタグのclass属性の前にスペースがないのが原因のようです。BeautifulSoupを使えばこういうValidじゃないHTMLも解析できるようですが、とりあえず利用もさせてもらっているし、はてなのお問い合わせにメールしました。

問題が発生した日時:2008/12/25 8:00
問題が発生したページのURL:http://b.hatena.ne.jp/ 以下
内容:
HTMLソースのbodyタグ内のclass属性の前にスペースが無いため、PythonのHTMLParserクラスを利用した場合に例外が発生してしまします。

是非ValidなHTMLに修正していただきたいのですが、可能でしょうか。
よろしくお願いいたします。