获取和解析未包含在标记内的文本

时间:2010-10-16 23:30:34

标签: python html html-parsing

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

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 undecision pudsey Antaean haec euphoniously Bixa细菌学上犹豫不决Hobbist petrosa值得称道的高贵无角化学痰盂flatiron flatiron flatiron flatiron sacmatospermatocele theosophically sarking nontruth possessionist gravimetry matico unlawly abator hyetological Microconodon supermuscan

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

4 个答案:

答案 0 :(得分:1)

解决这个问题的一种方法是简单地忽略所有标签,并假设你留下的是文本。它会使正则表达式变大。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

所以,如果我是你,我将使用正则表达式来匹配类似的链接:

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

关键字“[猫,吃,食,喝,牛奶]”我不知道你在找什么;

希望这可以提供帮助