Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 3.x 解析具有不规则列标题的HTML表_Python 3.x_Pandas_Beautifulsoup_Html Parsing_Lxml - Fatal编程技术网

Python 3.x 解析具有不规则列标题的HTML表

Python 3.x 解析具有不规则列标题的HTML表,python-3.x,pandas,beautifulsoup,html-parsing,lxml,Python 3.x,Pandas,Beautifulsoup,Html Parsing,Lxml,我可以得到一些关于如何解析(python)html表的建议吗,如示例1所示: 如您所见,这里的标题是跨多行的层次结构。我想对表进行解析,这样我就可以为每一列使用复合列名,即 火星产生 火星出售 维纳斯产生 维纳斯卖掉了 到目前为止,我已经尝试使用pandas read_html来实现这一点,但运气不好。这可能是可能的,但不规则或格式错误的html会使通过read_html直接读取pandas变得困难。我会做一个两步的过程,即1。使用像BeatifulSoup 2这样的库以迭代方式解析HTML。

我可以得到一些关于如何解析(python)html表的建议吗,如示例1所示:

如您所见,这里的标题是跨多行的层次结构。我想对表进行解析,这样我就可以为每一列使用复合列名,即

火星产生

火星出售

维纳斯产生

维纳斯卖掉了


到目前为止,我已经尝试使用pandas read_html来实现这一点,但运气不好。

这可能是可能的,但不规则或格式错误的html会使通过
read_html直接读取pandas变得困难。我会做一个两步的过程,即1。使用像BeatifulSoup 2这样的库以迭代方式解析HTML。从该输出创建一个数据帧。下面是Chris Albon的一个例子,感谢您的回复。事实上,我在排除pandas read_html之后尝试了beautifulsoup(似乎这就是要走的路线),因为后者(到目前为止)不支持以这种方式处理多个标题行。使用soup对象进行迭代解析时,我仍然无法完成我正在寻找的输出,标题行似乎未对齐,并且不尊重单个子列。是否尝试解析与示例中完全相同的表?是,尽管列的格式在某些情况下有所不同,例如此处提供的表格: