使用Python解析html文件

import sys
import os
import os.path

from html.parser import HTMLParser
#定义HTMLParser的子类,用以复写HTMLParser中的方法
class MyHTMLParser(HTMLParser):
    #构造方法,定义data数组用来存储html中的数据
    def __init__(self):
        HTMLParser.__init__(self)
        self.data = ''
        self.flag = False
        #self.index = 0
    
    #覆盖starttag方法,可以进行一些打印操作
    def handle_starttag(self, tag, attrs):
        #pass
        #print("遇到起始标签:{} 开始处理:{}".format(tag, tag))
        #if tag == 'tr':
        #    self.index = 0
        if tag == 'div':
            for k,v in attrs:#遍历div的所有属性以及其值
                if k == 'class' and v == 'cell':#确定进入了
#self.index = self.index + 1 self.flag = True self.data = self.data + '"' return #覆盖endtag方法 def handle_endtag(self, tag): #pass #print("遇到结束标签:{} 开始处理:{}".format(tag, tag)) if self.flag == True: self.data = self.data + '",' self.flag = False return #遇到tr结束,增加一个回车 if tag == 'tr': self.data = self.data + '\n' #覆盖handle_data方法,用来处理获取的html数据,这里保存在data数组 def handle_data(self, data): #pass #print("遇到数据:{} 开始处理:{}".format(data, data)) if(self.flag == True): data = data.replace('\n','')#替换字段中的回车 data = data.replace(' ','')#替换字段中的连续两个空格 self.data = self.data + data def read_file(filename): fp = open(filename,'r',encoding='utf-8') content = fp.read() fp.close() return content def write_file(filename,content): fp = open(filename,'a+',encoding='utf-8') fp.write(content) fp.close() def main(): csv_file = '1.csv' #会员信息 #write_file(csv_file,'"序号","账号","账号状态","登录IP","最近登录时间","登录次数","上级账号","交易次数","交易流水","账号余额","姓名"\n') #资金账户信息 write_file(csv_file,'"序号","卡号/账户","开户行/平台","余额","流水","所在地","姓名","用户名","手机号","qq","邮箱","注册IP","注册时间"\n') parser = MyHTMLParser() for i in range(1,3): html_file = '%d.html'%i print(html_file) if os.path.exists(html_file) == False: print(html_file + '文件不存在!') return content = read_file(html_file) #print(content) parser.feed(content) #对解析后的数据进行相应操作 #print(parser.data) write_file(csv_file,parser.data) parser.close() main()

 

你可能感兴趣的:(python)