Python:转码并保存到本地
来源:互联网 发布:数据服务中心 编辑:程序博客网 时间:2024/04/29 14:56
编程悬崖,回头是岸 ——Python:转码并保存到本地
抓取了x事百科的页面
#coding:utf-8import urllibimport urllib2import sysfrom HTMLParser import HTMLParserfrom htmlentitydefs import name2codepoint
这里是摘取页面
#get htmldef getHtml(url): #at first,you need to import urllib&urllib2 response = None requset = None html_body = None #add header 这里是添加头信息 headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} #catch exception try: #get html body 获取网页 requset = urllib2.Request(url,headers = headers) response = urllib2.urlopen(requset) html_body = response.read() if not html_body: html_body = 'error,please check your code!' return html_body except urllib2.HTTPError,e: #对错误的捕获 print e.code except urllib2.URLError,e: #httperror是urlerror子类,所以url要放后面 print e.reason #if hasattr(e,'code'): # print 'Error code:',e.code #elif hasattr(e,'reason'): # print 'Reason:',e.code finally: #close steam if response: response.close()
这个是转码,网页的大多是utf8,我用的是cmd,所以是gbk的,要转一下,不然会乱码
#html:utf-8,cmd-gbk,need to translatedef decodeStr(str): #at first,you need to import sys type = sys.getfilesystemencoding() return str.decode('utf-8').encode(type)
这个是重点,继承了HTMLParser,这个是自带的解析网页的,里面有好几个方法可以重写
class MyHTMLParser(HTMLParser): def _init_(self): HTMLParser._init_(self) #这个是获取tag的 #def handle_starttag(self,tag,attrs): #这个是获取标签内容的 def handle_data(self, data): if len(data) >8: #因为刚学这个,还不知道怎么过滤,就把字符长度大于8的过滤掉 f = file('getHtml.txt','a') #读取你要输出的目标文件,如果没有则创建,a是参数,表示内容追加,还有w等可选 f.write(data) f.close() print(decodeStr(data)) #这里在输出到控制台的时候做了转码def main(): #get html print "====start----------------" html = getHtml("http://www.qiushibaike.com/") parser = MyHTMLParser() parser.feed(html) #把上面获取的页面内容放到解析器去解析 print "====end----------------"#run pymain()
本来想把输出弄好看点,然而好心急好心急想看西部世界,所以…………………
0 0
- Python:转码并保存到本地
- python 爬取csdn网页并保存博客到本地
- python BeautifulSoup 正则匹配糗事百科并保存到本地
- Python 实现简单的爬虫功能并保存到本地
- python抓取网页中图片并保存到本地
- python抓取网页中图片并保存到本地
- IOS-UIView转UIImage并保存到本地相册
- 取得远程文件并保存到本地
- 取得远程文件并保存到本地
- 抓取远程文件并保存到本地
- Android画图并保存图片到本地
- Java实现截图并保存到本地
- android 设置头像并保存到本地
- 获取网络图片,并保存到本地
- ios 图片下载并保存到本地
- android 绘画板并保存到本地
- java实现截图并保存到本地
- python爬虫简单的抓页面图片并保存到本地
- SDUT 2141 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- iOS 底层实现 - KVO
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 * 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我A
- Hadoop入口FileSystem HDFS操作 本地文件合并到HDFS和HDFS文件合并
- 会话界面_扩展栏_文件
- Python:转码并保存到本地
- iOS 底层实现 - UIScrollView
- Swift-枚举类型以及原始值,与Switch匹配
- POJ 1459 最大流+建图+dinic
- 一道简单的笔试题
- leetcode---Add and Search Word - Data structure design---Trie树
- iOS 底层实现 - UITableView
- Spring中的IOC和AOP
- Odd Even Linked List ---LeetCode