python - 在 python 中提取表单键值对表单 html 页面或解析 html 页面

标签 python html string parsing html-parsing

我想提取html页面中一些表单元素的键值对

例如

name="frmLogin" method="POST" onSubmit="javascript:return validateAndSubmit();" action="TG_cim_logon.asp?SID=^YcMunDFDQUoWV32WPUMqPxeSxD4L_slp_rhc_rNvW7Fagp7FgH3l0uJR/3_slp_rhc_dYyJ_slp_rhc_vsPW0kJl&RegType=Lite_Home"

而原来的行是

<form name="frmLogin" method="POST" onSubmit="javascript:return validateAndSubmit();" action="TG_cim_logon.asp?SID=^YcMunDFDQUoWV32WPUMqPxeSxD4L_slp_rhc_rNvW7Fagp7FgH3l0uJR/3_slp_rhc_dYyJ_slp_rhc_vsPW0kJl&RegType=Lite_Home">

有什么方法可以安全地获取键值对吗?我尝试使用空格分隔,然后使用“=”字符,但引号内的字符串也可以有“=”。

是否有任何不同类型的拆分方法也可以处理引号?

最佳答案

使用解析库,例如 lxml.html用于解析 html。

图书馆将为您提供一种简单的方法来获取您需要的内容,可能只需要几个步骤:

  1. 使用解析器加载页面

  2. 选择要操作的表单元素

  3. 索要你想要的数据

示例代码:

>>> import lxml.html
>>> doc = lxml.html.parse('http://stackoverflow.com/questions/13432626/split-a-s
tring-in-python-taking-care-of-quotes')
>>> form = doc.xpath('//form')[0]
>>> form
<Element form at 0xbb1870>
>>> form.attrib
{'action': '/search', 'autocomplete': 'off', 'id': 'search', 'method': 'get'}

关于python - 在 python 中提取表单键值对表单 html 页面或解析 html 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432626/

相关文章:

python - pip 安装 eyeD3 模块。找不到 libmagic

javascript - CSS-jquery 单击色板图标更改背景色板

javascript - 用空格或字符分隔文本并包含该字符

javascript - jQuery 子菜单无法在 Firefox 中打开

regex - 如何使用正则表达式拆分字符串

C# - 如何通过 linq 对列表字符串编号进行排序?

python - Pandas 命令不起作用 - 为什么? (例如 : df. drop(...))

python 3.6 JsonResponse 问题

python - 自定义 Kite python 库

jquery - 同时选择两个单选按钮