python入门学习之HTML解析
2014-09-11 20:08
411 查看
这是参照廖雪峰老师的教程(链接)写的抓取网页特定信息的代码。感觉代码还不够简练,日后需要优化。
抓取网页特定内容的代码。由于知识累积的少,代码中对于特殊字符'&ndash'的解析感觉不是很完美,需以后改进。
import urllib3 from HTMLParser import HTMLParser from htmlentitydefs import name2codepoint, entitydefs class MyHTMLParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.h3 = None self.time = None self.span = None self.speci = False self.date = '' def handle_starttag(self, tag, attrs): if 'h3'==tag: for href, link in attrs: if 'event-title'==link: self.h3 = tag if 'time'==tag: for href, link in attrs: if 'datetime'==href: self.time = tag self.date += link if 'span'== tag: for href, link in attrs: if 'event-location'==link: self.span = tag def handle_endtag(self, tag): pass#print('</%s>' % tag) def handle_startendtag(self, tag, attrs): pass#print('<%s/>' % tag) def handle_data(self, data): if 'h3'==self.h3: print'conference title:',data self.h3 = None if 'time'==self.time: self.date+=data if self.speci: self.date += data self.speci = False self.time = None print self.date self.date = '' if 'span'==self.span: print 'event-location:',data self.span = None print '\n' def handle_comment(self, data): pass#print('<!--',data,' -->') def handle_entityref(self, name): if 'ndash'==name: self.date+='-' self.speci = True def handle_charref(self, name): pass parser = MyHTMLParser() url = "https://www.python.org/events/python-events/" response = urllib2.urlopen(url) page = response.read() parser.feed(page)注意:类中 有个self.date 变量,我让它初始化为空的字符串,但在中间的函数处理过程中我无意将其赋值为None,导致我之后想做‘+’的字符串连接老是报告错误。
抓取网页特定内容的代码。由于知识累积的少,代码中对于特殊字符'&ndash'的解析感觉不是很完美,需以后改进。
相关文章推荐
- python模块学习---HTMLParser(解析HTML文档元素)
- Python学习 - 使用BeautifulSoup来解析网页一:基础入门
- python网络编程学习笔记(7):HTML和XHTML解析(HTMLParser、BeautifulSoup)
- python︱HTML网页解析BeautifulSoup学习笔记
- Python爬虫(入门+进阶)学习笔记 1-4 使用Xpath解析豆瓣短评
- python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
- python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
- python学习笔记三:解析html(HTMLParser、SGMLParser),并抓取图片
- Python学习入门基础教程(learning Python)--2.2.1 Python下的变量解析
- python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
- python模块学习---HTMLParser(解析HTML文档元素)
- [转载]python模块学习---HTMLParser(解析HTML文档元素)
- python︱HTML网页解析BeautifulSoup学习笔记
- Python学习总结笔记(6)-- HTML解析之HTMLParser
- python模块学习---HTMLParser(解析HTML文档元素)
- python模块学习---HTMLParser(解析HTML文档元素)
- Python学习入门基础教程(learning Python)--2.2.1 Python下的变量解析 .
- Python爬虫实战入门三:简单的HTML解析——爬取腾讯新闻
- python网络编程学习笔记(7):HTML和XHTML解析(HTMLParser、BeautifulSoup)
- python模块学习---HTMLParser(解析HTML文档元素)