Python HTMLParser的使用例子

來源:互聯網
上載者:User

 

#!/usr/bin/env python

 

import

sys


import

urllib


import

HTMLParser

 

class

CustomParser

(

HTMLParser

.

HTMLParser

)

:

    

selected

=

(

'

table

'

,

'

h1

'

,

'

font

'

,

'

ul

'

,

'

li

'

,

'

tr

'

,

'

td

'

,

'

a

'

)

    

    

def

reset

(

self

)

:

        

HTMLParser

.

HTMLParser

.

reset

(

self

)

        

self

.

_level_stack

=

[]

    

def

handle_starttag

(

self

,

tag

,

attrs

)

:

        

if

tag

in

CustomParser

.

selected

:

            

self

.

_level_stack

.

append

(

tag

)

    

def

handle_endtag

(

self

,

tag

)

:

        

if

self

.

_level_stack

/

        

and

tag

in

CustomParser

.

selected

/

        

and

tag

==

self

.

_level_stack

[

-

1

]

:

            

self

.

_level_stack

.

pop

()

    

def

handle_data

(

self

,

data

)

:

        

if

"

/

"

.

join

(

self

.

_level_stack

)

in

(

            

'

table/tr/td

'

,

            

'

table/tr/td/h1/font

'

,

            

'

table/tr/td/ul/li

'

)

:

            

print

self

.

_level_stack

,

data

        

if

len

(

sys

.

argv

)

>

1

:

    

params

=

urllib

.

urlencode

(

{

'

ip

'

:

sys

.

argv

[

1

]

,

'

action

'

:

2

}

)


else

:

    

params

=

None

 

content

=

unicode

(

urllib

.

urlopen

(

'

http://www.ip138.com/ips8.asp

'

,

params

)

.

read

()

,

'

GB2312

'

)

 

parser

=

CustomParser

()


parser

.

feed

(

content

)


parser

.

close

()

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.