我有一个这样的表格:
<form id="search" method="get" action="search.php">
<input type="text" name="query" value="Search"/>
<input type="submit" value="Submit">
</form>
我想要这个顺序中的值: 方法 行动 名称
["get", "search.php", ["query"]]
我不知道如何在正则表达式中做到这一点。因为这也是多行字符串。 我对正则表达式也很陌生。
最佳答案
作为解析 HTML 或 XML 文档的正确方法,您应该使用 html(或 xml)解析器,例如 beautifulsoup
或 lxml
或 ... 。但如果您只想使用不推荐的regex
,您可以使用re.findall
,如下所示:
>>> [i for j in re.findall(r'method="([^ >"]*)"|action="([^ >"]*)"|name="([^ >"]*)"',s) for i in j if i]
['get', 'search.php', 'query']
[^ >]*
匹配不包含 空格
和 >
的字符串。
关于python - 使用正则表达式抓取 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795044/