Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用标准Python HTMLParser刮取HTML表_Python_Html_Html Parsing - Fatal编程技术网

使用标准Python HTMLParser刮取HTML表

使用标准Python HTMLParser刮取HTML表,python,html,html-parsing,Python,Html,Html Parsing,我希望只使用标准的Python HTML解析器从HTML表中提取数据。我需要坚持使用库存工具,因为代码将被广泛分发,我不能花时间支持那些需要安装BeautifulSoup、lxlml等的人 例如,HTML代码: - 2015-03-10 11:25 56K . . .找到了答案。需要在解析器中创建一个计数器,以便在从HTTP表中向解析器提供信息时记录日志。还使用if语句处理异常(例如目录和其他不需要的HREF)。 class MyHTMLParser(HTMLParser): def

我希望只使用标准的Python HTML解析器从HTML表中提取数据。我需要坚持使用库存工具,因为代码将被广泛分发,我不能花时间支持那些需要安装BeautifulSoup、lxlml等的人

例如,HTML代码:


- 
2015-03-10 11:25  
56K
.
.

.
找到了答案。需要在解析器中创建一个计数器,以便在从HTTP表中向解析器提供信息时记录日志。还使用if语句处理异常(例如目录和其他不需要的HREF)。
class MyHTMLParser(HTMLParser):
def __init__(self):
    HTMLParser.__init__(self)
    self.inLink = False
    self.dataList = []
    self.directory = '/'
    self.indexcol = ';'
    self.Counter = 0

def handle_starttag(self, tag, attrs):
    self.inLink = False
    if tag == 'table':
        self.Counter += 1
    if tag == 'a':
        for name, value in attrs:
            if name == 'href':
                if self.directory in value or self.indexcol in value:
                    break
                else:
                    self.inLink = True
                    self.lasttag = tag

def handle_endtag(self, tag):
        if tag == 'table':
            self.Counter +=1

def handle_data(self, data):
    if self.Counter == 1:
        if self.lasttag == 'a' and self.inLink and data.strip():
            self.dataList.append(data)

parser = MyHTMLParser()