【问题标题】:How to extract required information from a text? python如何从文本中提取所需信息? Python
【发布时间】:2019-02-04 02:32:42
【问题描述】:

我想提取:tamar tamar,0529589055

从这篇文章中,我必须多次这样做。

                    <h3 class="name">tamar tamar</h3>
                    <ul class="list-inline">
                        <li>gender:female</li>
                        <li>age:20</li>
                    <li class="phone" data="0529589055">phone:  0529589055</li>
                    <li class="email" data="tamar0529589055@gmail.com">email: tamar89055@gmail.com</li>         <!--                        <a 

【问题讨论】:

  • 这个问题显然是可以改进的。请发布一个更清晰、更详细的问题,以便您也得到一个好的和详细的答案
  • 这看起来像 HTML 而不仅仅是普通的旧文本。 HTML parser 将是要走的路。这里有一个非常有启发性的post。 :)

标签: python


【解决方案1】:

您是否考虑过尝试使用正则表达式? 例如一个简单的(\w+ \w+)&lt;/h3&gt; 将提取名称。至少对于上面的例子。 对于类似的数字: (0\d+)&lt;/li&gt; 来自我的头顶。

一个我觉得易于使用的在线正则表达式网站:https://pythex.org

和 python 正则表达式文档: https://docs.python.org/2/library/re.html

【讨论】:

    【解决方案2】:

    BeautifulSoup 就是你要找的东西

    from bs4 import BeautifulSoup
    a='''<h3 class="name">tamar tamar</h3>
    <ul class="list-inline">
        <li>gender:female</li>
        <li>age:20</li>
    <li class="phone" data="0529589055">phone:  0529589055</li>
    <li class="email" data="tamar0529589055@gmail.com">email: tamar89055@gmail.com</li> 
    '''
    soup = BeautifulSoup(a)
    print(soup.find('h3',{"class": "name"}).text)
    print(soup.find('li',{"class":'phone'}).text)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-04
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多