Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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解析包含&&引用;_Python_Html Parsing - Fatal编程技术网

使用Python解析包含&&引用;

使用Python解析包含&&引用;,python,html-parsing,Python,Html Parsing,我正在使用python库SGMLParser来解析一些html。 我遇到了表单的html标记 <td class="school">Texas A&amp;M</td> 在调用之前使用&来替换字符串,而不替换整个字符串中的所有特殊符号(其中一些我可能需要) 谢谢 如果您从SGMLParser切换到诸如(也处理HTML)之类的现代替代方案,这将变得微不足道: >>> etree.fromstring('''<td class="school

我正在使用python库SGMLParser来解析一些html。 我遇到了表单的html标记

<td class="school">Texas A&amp;M</td>
在调用之前使用&来替换字符串,而不替换整个字符串中的所有特殊符号(其中一些我可能需要)

谢谢

如果您从
SGMLParser
切换到诸如(也处理HTML)之类的现代替代方案,这将变得微不足道:

>>> etree.fromstring('''<td class="school">Texas A&amp;M</td>''').text
'Texas A&M'
>etree.fromstring(''Texas A&;M'').text
“德克萨斯A&M”

实体引用,如
&由处理。检查此方法是否知道如何翻译
&。默认实现应该调用
handle_data('&')
,但您可能意外地覆盖了它


此外,如果可能的话,请考虑使用更高级的方法。

< P> SGMLParser有<代码> RealtTyTyTyType(<)>代码>方法,但是我不推荐SGMLParser,我建议使用或拥有更好的分析器API。

SGMLParser被贬低,因为没有人关心SGML(大多数人用它来解析HTML,在一个例子中)。XMLParser具有相同的接口,未被弃用。是的,我也不关心SGML,它看起来只是一种从html读取数据的“简单”方法。我会调查lxml的,谢谢。我不认为我写得太多了。。。但是handle_数据会被调用三次,分别是'Texas A'、'&'和'M'对吗?有没有办法将数据连接起来(如果你知道我的意思的话)?看起来每个人都建议使用lxml,所以我会仔细研究它。@mdeland。你必须自己加入数据;SGMLParser是一个非常低级的接口。
>>> etree.fromstring('''<td class="school">Texas A&amp;M</td>''').text
'Texas A&M'