【发布时间】:2012-01-02 20:43:29
【问题描述】:
我想在 Python 上使用正则表达式解析网页并查找特定模式。
我的示例页面有:
<input type="checkbox" name="some name....">
<input type="text", name="somemore name...">
<input type="radio" name="other name...">
我想找到所有匹配的 name 单选和复选框输入值。
<input type="checkbox" name="(.*?)".*?>
<input type="radio" name="(.*?)".*?>
但我不知道如何将这些组合成一个正则表达式?
编辑:这个问题可能会转向其他方向。但我最好告诉我我想做什么,我选择的正则表达式是否真的适合那个...
我必须查询一个订阅者,并获得一些关于该订阅者的基本信息以及该订阅者的可用贷款和费用列表。相关模块有许多脚本可以使用正则表达式完成此类工作。我还在代码中的某些部分使用了 SGMLparser。但我有时会看到 SGML 解析器无法解析 HTML(没有挖掘它为什么会失败,但基本原因是 unexpected char 类型错误)。所以,我必须确保我要么处理所有类型的 HTML 代码,要么继续使用正则表达式。
结论:使用HTMLParser 是最好的选择,而使用regex 是一个非常糟糕的主意......这就是我从中得到的这个问题...但是由于 问题本身 更多的是关于 regex matcihng 然后 regex 在 thml 中的用法,我决定接受 正则表达式的答案...
【问题讨论】:
-
如果您决定使用 xml 解析器,请尝试
xml.dom.minidom模块,特别是getElementsByTagName函数和attributes属性或Attrs方法。