python - 解析数据的 HTML 存储格式
问题描述
我从网站中提取了一种 HTML 存储格式标记语言。信息采用表格格式,如网站所示: 但是在我使用 curl 命令提取信息后,我得到了 HTML 格式的信息。请告知如何使用 Python 解析这些信息,以便我只能收集数据。也许我们可以将数据插入到类似 [[CALX-582 Action-Item], [CALX-736 Action-Item]......] 的列表中。是否有任何 Python-API 可以做到这一点?还是建议只使用 REGEX 并解析所需的数据。
<pre><br /></pre>
<p class="auto-cursor-target"><br /></p>
<table><colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th>JIRA</th>
<th>Type</th></tr>
<tr>
<td>CALX-582</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-736</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-735</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-792</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-1563</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-1567</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-1861</td>
<td>Bug</td></tr></tbody></table>
<p class="auto-cursor-target"><br /><br /></p>
解决方案
如前所述,您可以为此使用 BeautifulSoup。
不确定您想要数据的方式,但下面的代码将创建一个字典列表,其中包含来自列的键和来自JIRA
列的值Type
。
您可以使用其他方法将数据放入其他类型的结构中。
from bs4 import BeautifulSoup
html = """
<pre><br /></pre>
<p class="auto-cursor-target"><br /></p>
<table><colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th>JIRA</th>
<th>Type</th></tr>
<tr>
<td>CALX-582</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-736</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-735</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-792</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-1563</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-1567</td>
<td><span>Action-Item</span></td></tr>
<tr>
<td>CALX-1861</td>
<td>Bug</td></tr></tbody></table>
<p class="auto-cursor-target"><br /><br /></p>
"""
soup = BeautifulSoup(html, 'html.parser')
jira = soup.select('td')
data = [{jira[idx].getText(): jira[idx+1].getText()} for idx in range(0, len(jira), 2)]
print(data)
推荐阅读
- python - Makedirs 正在创建文件而不是文件夹
- java - 如何在 JSP 中的表单的值字段中显示包含空格的字符串变量?
- django - Django返回响应而不通过views.py
- java - 您如何通过流程构建器将输入发送到 jar,同时还接收来自 jar 的输出
- python - 在第 21 行,它说存在语法错误。错误代码 e0001
- r - R 向量仅给出 49 个元素
- python - 运算符不存在:字符变化 + 字符变化
- c++ - fanotify - 内核 5.1 中引入的新标志的问题
- java - Java + HTML,如何显示列表?
- python-3.x - 如何在 PySide2 小部件中添加moviepy预览窗口