python - 使用正则表达式抓取 HTML 表单

标签 python regex

我有一个这样的表格:

<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)解析器,例如 beautifulsouplxml 或 ... 。但如果您只想使用不推荐的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/

相关文章:

python - sqlalchemy OperationalError : (OperationalError) (1045,“用户访问被拒绝

正则表达式查找sql​​注释

python - 如何正则表达式拆分,但保留拆分字符串?

Javascript 匹配不包含字符的字符串

regex - 正则表达式验证采用类似日期的格式

android - Buildozer Android Kivy 导入要求失败

python - 加权边缘如何影响networkx中的PageRank?

python - pytest 与 setup.py 测试

python - Flask 渲染以前版本的 CSS

regex - awk split()函数使用正则表达式还是精确的字符串常量?