Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 fromstring()->;tostring()修改整个HTML结构_Python_Html_Lxml - Fatal编程技术网

Python fromstring()->;tostring()修改整个HTML结构

Python fromstring()->;tostring()修改整个HTML结构,python,html,lxml,Python,Html,Lxml,我正在尝试使用lxml.html编写一个清除例程来删除 没有内容的空DIV元素。在调试过程中,我注意到 标准的tostring()->fromstring()迭代修改我的HTML。 首先,它删除了外部的body标记,然后它更改了DIV结构 为什么? (Pdb)从lxml.html导入fromstring,tostring (Pdb)打印html 你好,世界 (Pdb)打印到字符串(从字符串(html)) 你好,世界 没错。虽然您的示例是格式良好的,但它不是有效的html,因此lxml会尽力更

我正在尝试使用lxml.html编写一个清除例程来删除 没有内容的空DIV元素。在调试过程中,我注意到 标准的tostring()->fromstring()迭代修改我的HTML。 首先,它删除了外部的body标记,然后它更改了DIV结构

为什么?

(Pdb)从lxml.html导入fromstring,tostring
(Pdb)打印html
你好,世界

(Pdb)打印到字符串(从字符串(html)) 你好,世界


没错。虽然您的示例是格式良好的,但它不是有效的html,因此lxml会尽力更正它。特别是div元素不能嵌套在p元素中,根标记不能是body。请改用etree模块:

from lxml.etree import fromstring, tostring

没错。虽然您的示例是格式良好的,但它不是有效的html,因此lxml会尽力更正它。特别是div元素不能嵌套在p元素中,根标记不能是body。请改用etree模块:

from lxml.etree import fromstring, tostring

在p中不正确地嵌套div是正确的,但是我正在处理大量的html片段,修改外部标记在这里不是一个选项。有没有抑制这种修改的选项?你是对的,在p中不正确地嵌套了一个div,但是我正在处理大量的html片段,修改外部标记在这里不是一个选项。是否有抑制此修改的选项?