我对python中的正则表达式有一些问题。我有一些 html 页面,其中包含对我有用的信息。在保存页面时,encodig 字符集是一种 iso... 它保存了所有德国典型字母编码,例如。比如 Früchte 和儿子的“Fr%C3%BCchte”。html 的结构非常糟糕,因此唯一合理的方法是使用正则表达式来抓取它。
我在 python 中有这个正则表达式:
re.compile('<a\s+href="javascript.*?\(\'(\w+).*?\s.(\d+.+\d+).*?(.*)\'\)\">')
不幸的是,这并不是我真正想要的,因为编码的单词只会被部分提取,例如。结果将是:
[('showSubGroups', "160500', 'Fr%C3", '%BCchte in Alkohol'),
('showSubGroups', '160400', "', 'Rumtopf"),
('showSubGroups', '160300', "', 'Spirituosen (Bio)"),
('showSubGroups', '160200', "', 'Spirituosen zur Verarbeitung in der Confiserie"),
('showSubGroups', '160100', "', 'Spirituosen, allgemein")]
也许我累了,但我看不出错误在哪里:
使用 html:
<td colspan="3" width="100%"><a href="javascript:sendForm('showSubGroups', '160500', 'Fr%C3%BCchte in Alkohol')">Früchte in Alkohol</a></td>
</tr>
<tr valign="top">
<td colspan="3"><img src="NoName_Time_200843_93448%20-Dateien/pix.gif" height="5" width="1"></td>
</tr> <tr valign="top">
<td colspan="3" width="100%"><a href="javascript:sendForm('showSubGroups', '160400', 'Rumtopf')">Rumtopf</a></td>
</tr>
<tr valign="top">
<td colspan="3"><img src="NoName_Time_200843_93448%20-Dateien/pix.gif" height="5" width="1"></td>
</tr> <tr valign="top">
<td colspan="3" width="100%"><a href="javascript:sendForm('showSubGroups', '160300', 'Spirituosen (Bio)')">Spirituosen (Bio)</a></td>
</tr>
<tr valign="top">
<td colspan="3"><img src="NoName_Time_200843_93448%20-Dateien/pix.gif" height="5" width="1"></td>
</tr> <tr valign="top">
<td colspan="3" width="100%"><a href="javascript:sendForm('showSubGroups', '160200', 'Spirituosen zur Verarbeitung in der Confiserie')">Spirituosen zur Verarbeitung in der Confiserie</a></td>
</tr>
<tr valign="top">
<td colspan="3"><img src="NoName_Time_200843_93448%20-Dateien/pix.gif" height="5" width="1"></td>
</tr> <tr valign="top">
<td colspan="3" width="100%"><a href="javascript:sendForm('showSubGroups', '160100', 'Spirituosen, allgemein')">Spirituosen, allgemein</a></td>
</tr>
<tr valign="top">
<td colspan="3"><img src="NoName_Time_200843_93448%20-Dateien/pix.gif" height="5" width="1"></td>
</tr> </tbody></table>
</td>
</tr>