当前位置: 首页 > 面试题库 >

使用Python解析HTML文件而无需外部模块

夏侯野
2023-03-14
问题内容

我正在尝试使用Python解析html文件,而不使用任何外部模块。原因是我正在触发jenkins作业,并遇到了lxml和BeautifulSoup的一些导入问题(试图解决该问题,我认为我在进行工程设计的某个方面来完成我的工作)

输入

    <tr class="test">
    <td class="test">
      <a href="a.html">BA</a>
    </td>
    <td class="duration">
      0.000s
    </td>

        <td class="zero number">0</td>

        <td class="zero number">0</td>

        <td class="zero number">0</td>

    <td class="passRate">
            N/A
          </td>
  </tr>

  <tr class="test">
    <td class="test">
      <a href="o.html">Aa</a>
    </td>
    <td class="duration">
      0.000s
    </td>

        <td class="zero number">0</td>

        <td class="zero number">0</td>

        <td class="zero number">0</td>

    <td class="passRate">
            N/A
          </td>
  </tr>

  <tr class="test">
    <td class="test">
      <a href="g.html">VideoAds</a>
    </td>
    <td class="duration">
      0.390s
    </td>

        <td class="zero number">0</td>

        <td class="zero number">0</td>

        <td class="zero number">0</td>

    <td class="passRate">
            N/A
          </td>
  </tr>

  <tr class="suite">
    <td colspan="2" class="totalLabel">Total</td>

        <td class="zero number">271</td>

        <td class="zero number">0</td>

        <td class="zero number">3</td>

    <td class="passRate suite">
            98%
          </td>

  </tr>

输出

我想使用“ suite”类(末尾检查)来获取tr标记的特定块,然后提取零号,零号,零号和passRate套件的值。最后,打印值。

~ ~ ~ ~ ~ ~

例如。零数= 271 …

通过率= 98%

~ ~ ~ ~ ~ 这是我尝试使用lxml的内容:

tree = parse(HTML_FILE)
tds = tree.xpath("//tr[@class='suite']//td/text()")
val = map(str.strip, tds)

这在本地可行,但是我真的想做一些没有任何外部依赖项的事情。我应该使用strip()还是使用os.path.isFile()打开文件。我可能不正确,但是建议/指导我完成此操作的解决方案。


问题答案:

对于一个元素,您可以尝试使用re模块甚至字符串函数。

data = '''<tr class="test">
<td class="test">
<a href="no.html">track</a></td>
<td class="duration">0.390s</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="zero number">0</td>
<td class="passRate">N/A</td></tr>

<tr class="suite">
<td colspan="2" class="totalLabel">Total</td>
<td class="passed number">271</td>
<td class="zero number">0</td>
<td class="failed number">3</td>
<td class="passRate suite">98%</td>
</tr>'''

# re module

import re

print(re.search('suite">(\d+)%', data).group(1))

# string functions

before = 'passRate suite">'
after  = '%'
start = data.find(before) + len(before)
stop  = data.find(after, start)

print(data[start:stop])

编辑:与获取其他值 re

import re

print('passed:', re.search('passed number">(\d+)', data).group(1))
print('zero:', re.search('zero number">(\d+)', data).group(1))
print('failed:', re.search('zero number">(\d+)', data).group(1))
print('Rate:', re.search('suite">(\d+)', data).group(1))

passed: 271
zero: 0
failed: 0
Rate: 98


 类似资料:
  • 我用C创建了一个简单的饼图hart.js.我想把它链接到我电脑上的一个JSON文件,它在同一个本地文件夹中。然后,我希望JSON文件中的数据显示在我的饼图上,而不是直接从脚本中获取。 我该怎么做呢?这是我的密码。 这是我的JSON文件,保存在“chart.JSON”下-我不确定这是否是正确的格式,因为我是一个真正的新手。 我理解解析JSON文件的必要性,但我不知道该怎么做——提前非常感谢。

  • 我试图在标签之间获得文本并保存到一些变量中,例如:在这里我想保存值,这是标签之间。我还需要其余的文本,这是在标签,标签值分配与和标签值应该只返回- 我写了下面的内容:下面返回的只是“'em”标记中的“return”。这里的基本上是,选择标记,然后进行迭代,不确定我的方法是否正确,任何其他方法都受到高度赞赏。

  • 问题内容: 我似乎找不到使用Dart语言在没有密钥的情况下解析json数组的解决方案。我所能找到的就是使用Java。我需要解析这样的内容。 Java解决方案来自这里 如果我有重复的问题,请告知我。谢谢! 问题答案: 只需json.decode正常使用,例如: 碰巧的成员l都将int小号

  • 我想使用Python创建一个函数来获取网站内容,例如获取网站组织内容。 在代码中,组织是东京大学: 我如何能直接获得网站内容,而不需要任何新的安装,如获得http://www.ip-adress.com/ip_tracer/157.123.22.11

  • 本文向大家介绍Python配置文件解析模块ConfigParser使用实例,包括了Python配置文件解析模块ConfigParser使用实例的使用技巧和注意事项,需要的朋友参考一下 一、ConfigParser简介 ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。 中括号“

  • 我可以使用Gradle下载Java外部依赖项而不编译源代码吗?