0

現在、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)

助けてくれてありがとう。

4

2 に答える 2

1

エラーが見つかった行を教えてくれました。他に何が必要ですか?

また、URLはこれと何の関係がありますか? HTML ページを文字列として渡して、どこから来たのかわかりませんfeedHTMLParser

于 2012-05-21T08:53:25.103 に答える
0

エラーを生成する現在のHTMLコードをどのように知ることができますか?

開始タグのジャンク文字:u'\ u201dTPL_password_1 \ u201d \ r \ n \ t \ t'、21285行6列

現在のHTMLページのhtml行番号21285

そして、現在の解析URLは何ですか?

どのリンクを解析しますか?

geturl.feed(cur_page)

cur_pageは現在のページです。

于 2012-05-21T08:59:25.433 に答える