Python爬虫处理xml和html的字符串

来源:互联网 发布:软件绿色化 编辑:程序博客网 时间:2024/06/03 10:36

在爬取网页时,有时候网页返回的数据是xml或者html片段,需要自己进行处理分析,在网上搜索了一下处理方法,这里总结一下。
首先给一个简单的“爬虫”:

import urllib2def get_html(url,response_handler):    response=urllib2.urlopen(url)    return response_handler(response.read())#crawl the pageget_html("www.zhihu.com/topics",html_parser)

以上就是获取单个页面的“爬虫”了,确实很简陋,但是也说明了爬虫核心过程:抓取网页和分析网页。
抓取网页的过程基本是固化的,我们的重点在response_handler里面,这个参数就是分析网页的方法,在一些流行的爬虫框架中我们主要需要完成的也是分析网页的过程。上面示例中使用的是xml_parser函数,不要以为有默认实现(其实并没有),下面我们来完成这个函数:

#使用lxml库来分析网页,此库的详细使用可以自行百度import lxml.etreedef html_parser(response):    page=lxml.etree.HTML(response)    #这里使用了XPATH来取元素,XPATH用法自行百度    for elem in page.xpath('//ul[@class="zm-topic-cat-main"]/li'):        print elem.xpath('a/text()')[0]

我们使用了lxml.etree.HTML()载入网页的内容,返回的对象可以用xpath来取网页的元素,好像还支持CSS语法取元素,详细内容可以查阅相关文档。上面的分析函数完成的是打印所有分类的名称。

对于解析xml的字符串的方法,和上面类似,举例如下:

import lxml.etreedef xml_parser(response):    page=lxml.etree.fromstring(response)    #do what you want    pass

暂时就这些

0 0