現在、Python を使用して Web クローラーを作成していますが、HTMLParserError がスローされることがあります。
junk characters in start tag: u'\u201dTPL_password_1\u201d\r\n\t\t', at line 21285, column 6
21285行目でエラーが発見されたとのことですが、HTMLソースコードの21285行目でエラーが発見されたということですか?そうでない場合、エラーを生成する現在の HTML コードを知るにはどうすればよいですか? 現在の解析URLは何ですか?
私の解析クラスは次のように単純化できます。
class ParsePage(HTMLParser):
"""Parse the given page content using HTMLParser"""
def __init__(self):
HTMLParser.__init__(self)
def handle_starttag(self, tag, attrs):
#Here i tried to add `try...expect` to inspect the current tag and attrs, but it seems python didnt enter the except at all, why? the error message said the error was found at start tag, why it didnt enter the except at all?
try:
Some codes doing with the start tag...
except HTMLParser.HTMLParseError, e:
print "e: ", e, '\n'
print 'tag: ', tag, '\n'
print 'attrs: ', atts, '\n'
exit(1)
def handle_endtag(self, tag):
#Some codes doing with end tags...
geturl = ParsePage()
#Here i can catch the HTMLParseError if i add `try...except` in the following line, but i dont know how to get the useful information here when i catch the exception
geturl.feed(cur_page)
助けてくれてありがとう。