Python 3中HTTPparse 的使用
2015-07-30 16:41
477 查看
在python中能够进行html和xhtml的库有很多,如HTMLParser、sgmllib、htmllib、BeautifulSoup、mxTidy、uTidylib等,这里介绍一下HTMLParser、BeautifulSoup等模块。测试用的html 文件
<head> <title> XHTML 与" HTML 4.01 "标准没有太多的不同</title> </head> <body> i love÷ you× <a href="http://pypi.python.org/pypi" title="link1">我想你</a> <div id="m"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" width="270" height="129" ></div> </body> </html>
以下是Python 3中的处理方法
from html.parser import HTMLParser from html.entities import name2codepoint import urllib.request def getimage(addr): u = urllib.request.urlopen(addr) data = u.read() filename = addr.split('/')[-1] f = open(filename, 'wb') f.write(data) f.close() print(filename + '已经生成') class MyHtmlParser(HTMLParser): def __init__(self): self.taglevels = [] self.handletags = ['title','body'] self.processing = None HTMLParser.__init__(self) def handle_starttag(self, tag, attrs): if tag in self.handletags: self.data = '' self.processing = tag if 'a' == tag: for name, value in attrs: if name == 'href': print('连接地址:'+ value) if 'img' == tag: for name,value in attrs: if name == 'src': getimage(value) def handle_endtag(self, tag): if tag in self.handletags: print(str(tag) + ':' + str(tp.gettitle())) self.processing = None def handle_data(self, data): if self.processing: self.data +=data def handle_entityref(self,name): c = chr(name2codepoint[name]) self.handle_data(c) def gettitle(self): return self.data fd = open('test1.html') tp = MyHtmlParser() tp.feed(fd.read())</span>
相关文章推荐
- android通过url读取网络图片
- hdu 4028 2011上海赛区网络赛H dp+map离散
- 网络编程笔记4
- 网络编程笔记3
- 网络编程笔记2
- http://xiejianglei163.blog.163.com/blog/static/1247276201441910377144/
- 网络编程笔记1
- NGINX + TOMCAT + MEMCACHED实现HTTP负载均衡
- 无法解析类型 javax.servlet.http.HttpServletRequest。从必需的 .class 文件间接引用
- http协议详解(转自乔晓松的博客)
- nginx 配置https 环境
- java端连接https注意事项
- Android get/post方式请求网络设置超时
- 推广利器之网络营销
- hdu 4027 2011上海赛区网络赛G 线段树 成段平方根 ***
- 【HttpClient4.5实训】一.HttpClient4.5模拟浏览器GET请求访问新浪网(非原文教程)
- HTTPS单向认证和双向认证
- 网路总结01-HTTP协议和NSURLConnection
- 微软推送Win10致全球网络负担增大,中国网友表示毫无压力
- 安卓如何控制不会重复请求网络