【问题标题】:How can i extract the words which are starting with "icon" from HTML code using python如何使用python从HTML代码中提取以“icon”开头的单词
【发布时间】:2019-05-08 18:58:21
【问题描述】:

我需要一个 python 代码来使用 python 提取选定的单词。

<a class="tel ttel">
<span class="mobilesv icon-hg"></span>
<span class="mobilesv icon-rq"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-rq"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-ikj"></span>
<span class="mobilesv icon-dc"></span>
<span class="mobilesv icon-acb"></span>
<span class="mobilesv icon-lk"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-nm"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-yz"></span>
</a>

我需要提取以“icon”开头的单词

我需要的输出是

icon-hg、icon-rq、icon-ba、icon-rq、icon-ba、icon-ikj、icon-dc、icon-acb、icon-lk、icon-ba、icon-nm、icon-ba , 图标-yz

【问题讨论】:

  • 你在用beautifulSoup吗?
  • 请发布您的尝试。
  • 除了@David 的建议之外,快速浏览this article on how to ask a high quality question 并编辑您的问题可能会有所帮助,以确保分享您问题的其他开发人员能够在 StackOverflow 上找到它。
  • 我建议查看 Python 的正则表达式(re 模块),尤其是 re.findall 函数。

标签: python html nltk


【解决方案1】:

对于您的具体情况,您可以通过以下方式获得它,但是我建议使用漂亮的汤来解决广泛的问题,请记住,特殊情况不足以打破规则。

text = """
<a class="tel ttel">
<span class="mobilesv icon-hg"></span>
<span class="mobilesv icon-rq"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-rq"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-ikj"></span>
<span class="mobilesv icon-dc"></span>
<span class="mobilesv icon-acb"></span>
<span class="mobilesv icon-lk"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-nm"></span>
<span class="mobilesv icon-ba"></span>
<span class="mobilesv icon-yz"></span>
</a>
"""

result = [word.split('"')[0] for word in text.split() if word.startswith('icon')]

print(result)

输出:

['icon-hg', 'icon-rq', 'icon-ba', 'icon-rq', 'icon-ba', 'icon-ikj', 'icon-dc', 'icon-acb', 'icon-lk', 'icon-ba', 'icon-nm', 'icon-ba', 'icon-yz']

【讨论】:

    【解决方案2】:

    如果您使用的是 BeautifulSoup。 这将从图标搜索字符串到 qoute (")。

    from bs4 import BeautifulSoup
    import re
    s = """<a class="tel ttel">
    <span class="mobilesv icon-hg"></span>
    <span class="mobilesv icon-rq"></span>
    <span class="mobilesv icon-ba"></span>
    <span class="mobilesv icon-rq"></span>
    <span class="mobilesv icon-ba"></span>
    <span class="mobilesv icon-ikj"></span>
    <span class="mobilesv icon-dc"></span>
    <span class="mobilesv icon-acb"></span>
    <span class="mobilesv icon-lk"></span>
    <span class="mobilesv icon-ba"></span>
    <span class="mobilesv icon-nm"></span>
    <span class="mobilesv icon-ba"></span>
    <span class="mobilesv icon-yz"></span>
    </a>"""
    soup = BeautifulSoup(s, "html.parser")
    for s in soup.findAll("span"):
        s=str(s)
        print(re.search(r'(?=icon-)[^"]*',s).group())
    

    结果:

    icon-hg
    icon-rq
    icon-ba
    icon-rq
    icon-ba
    icon-ikj
    icon-dc
    icon-acb
    icon-lk
    icon-ba
    icon-nm
    icon-ba
    icon-yz
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多