我们说我有一个文件 a.txt ,其中包含HTML编码的HTML,如下所示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>HTML preview</title>
<link rel="StyleSheet" href="style.css" type="text/css" media="screen">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body><!doctype html><html itemscope=""
...
</script></body></html></body>
</html>
在PHP中,我可以这样做:
<?php
$content = file_get_contents('a.txt');
$start = strpos ($content, '<body>') + 6;
$end = strpos ($content, '</body>');
$html = html_entity_decode(substr($content, $start, $end-$start));
file_put_contents('b.html');
它完美无缺。文件 b.html 会成为正确的HTML。
我的问题是:假设文件和编码内容是UTF-8,我怎么能用Python做呢?
编辑:我使用HTMLParser和BeautifulStoneSoup进行了一些实验,但是它们破坏了UTF-8编码。我尝试使用UnicodeDammit,但是将字符串返回到控制台或文件会带来一个异常,即字符超出范围。
编辑2:请回答一个代码示例,它们以类似的方式工作。
解决方案1