【问题标题】:fetching and parsing text not enclosed within tags获取和解析未包含在标签中的文本
【发布时间】:2010-10-16 23:30:33
【问题描述】:

我正在尝试一个关于页面排名的项目。我想做一个如下所示的索引(字典):

file1.html -> [[cat, ate, food, drank, milk], [file2.html, file3.html]]
file2.html -> [[dog, barked, ran, away], [file1.html, file4.html]]

获取链接很容易 - 查找锚标记。我的问题是 - 我如何获取文本? html 文件中的文本未包含在任何标签中,例如<p>

以下是其中一个输入 HTML 文件的示例:

d_9.html
d_3.html

bedote charlatanism nondecision pudsey Antaean haec 悦耳 Bixa 细菌学上犹豫不决 Hobbist petrosa 可修正反战贵族 无角 化学分解痰盂 熨斗正式 血精囊肿 神智学上 非真理占有主义 重量法 matico 非法除菌器 hyetological Microconodon supermuscan

也许,上面的文本不是 HTML,但是我该如何获取和解析呢?有什么想法吗?

【问题讨论】:

    标签: python html html-parsing


    【解决方案1】:

    解决此问题的一种方法是简单地忽略所有标签,并且假定您剩下的内容是文本。它会使正则表达式变大。

    【讨论】:

      【解决方案2】:

      我不会使用正则表达式,我会使用lxml 之类的东西,这样您就可以根据需要获取标签、文本以及文档的结构。

      【讨论】:

        【解决方案3】:

        您说文本“不是 HTML”并且“没有包含在任何标签中”。所以它只是纯文本,没有什么可解析的。获取url,返回给你的内容是一个满是单词的字符串。用 .split() 分割单词,你就有了一个单词列表。

        【讨论】:

          【解决方案4】:

          我认为您想要的是从 HTML 文件中获取数据(链接、关键字...),但您的问题是 HTML 文件的 某些部分 不包含任何要解析的标签它是正确的,还是所有没有标签的 HTML 文件?如果是,您可以使用tidy 格式化html文件,它可以帮助您解析它;

          所以如果我是你,我只会使用正则表达式来匹配链接,例如:

          links = re.finditer(".*html", text) # by the way the regex  must be more complicated than that.  
          

          对于关键字“[cat, ate, food, drank, milk]”,我不知道您到底在寻找什么;

          希望对你有帮助

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-01-26
            • 2011-10-07
            • 2012-11-10
            • 2023-03-27
            相关资源
            最近更新 更多