Harser是一个简单的PythoHTML解析器。
安装:pipistallharser
示例代码:
>>> from harser import Harser>>> HTML = ''' <html><body> <div class="header" id="id-header"> <li class="av-item" data-av="first-item" href="/av1">First item</li> <li class="av-item" data-av="secod-item" href="/av2">Secod item</li> <li class="av-item" data-av="third-item" href="/av3">Third item</li> </div> <div>First layer <h3>Lorem Ipsum</h3> <spa>Dolor sit amet</spa> </div> <div>Secod layer</div> <div>Third layer <spa class="text">first block</spa> <spa class="text">secod block</spa> <spa>third block</spa> </div> <spa>fourth layer</spa> <img /> <div class="footer" id="id-foobar" foobar="ab bc cde"> <h3 some-attr="hey"> <spa id="foobar-spa">foo ter</spa> </h3> </div> </body></html>'''>>> harser = Harser(HTML)>>> harser.fid('div', class_='header').childre(class_='av-item').fid('text').extract()# Or just# harser.fid(class_='av-item').fid('text').extract()['First item', 'Secod item', 'Third item']>>> harser.fid(class_='av-item').get_attr('href').extract()['/av1', '/av2', '/av3']# It is equally>>> harser.fid('div', class_='header', id='id-header')>>> harser.fid('div', attrs={'class': 'header', 'id': 'id-header'})>>> harser.fid(id__cotais='bar').get_attr('class').extract()['footer']>>> harser.fid(href__ot_cotais='2').fid('text').extract()['First item', 'Third item']>>> harser.fid(attrs={'data-av__cotais': 'secod'}).ext_sibligs().fid('text').extract()['Third item']>>> harser.fid('li').paret().ext_sibligs(filters={'text__cotais': 'Secod'}).clea_extract()['<div>Secod layer</div>']>>> harser.fid('h3', filters={'spa.@id__starts_with': 'foo'}).get_attr('some-attr').extract()['hey']>>> harser.fid('div').childre('h3').xpath'//descedat::div/h3'






评论