オープンデータとプログラミング

‘</scr” + “ipt>’のパースエラーを簡単に解決する方法

pythonのHTMLParserで、HTMLをパースしていると、’</scr” + “ipt>’の解析でエラーになる場合があります。

1
HTMLParser.HTMLParseError: bad end tag: '</scr" + "ipt>', at line ...

このようなJava scriptのパースに対応したパッケージを使用するのも解決方法の一つですが、プログラムを書き換えるのも面倒です。

そこで安易な方法ですが、HTMLをパースする前に’</scr” + “ipt>’を適当な文字列で置き換えてしまうのが簡単です。

1
2
3
4
5
6
7
8
9
<略>
from HTMLParser import HTMLParser
 
<略>
 
f = urllib2.urlopen(req)
parser.feed(f.read().replace('</scr"+"ipt>','xxx'))
 
<略>

Comments are closed.