繁体   English   中英

Python:从html文件获取和解析文本

[英]Python: Fetching and parsing text from html files

我正在尝试有关页面排名的项目。

我想制作一个像这样的索引(字典):
file1.html-> [[猫,吃,食物,饮料,牛奶],[file2.html,file3.html]]
file2.html-> [[狗,吠叫,跑开,离开],[file1.html,file4.html]]

提取链接很容易-寻找锚标记。

我的问题是-如何获取文本? html文件中的文本未包含在<p>之类的任何标记内

预先感谢所有帮助

使用HTML解析器-类似于BeautifulSoup

如果文本未包含在标签中,是否为HTML?
正如Amber所说,使用诸如BeautifulSoup之类的HTML解析器,您可以轻松完成此任务。

下面的示例演示了一种用于返回标签内文本的简单方法。
此方法适用于任何标签AFAIK。

>>> from BeautifulSoup import BeautifulSoup as bs
>>> html = '''
... <div><a href="/link1">link1 contents</a></div>
... <div><a href="/link2">link2 contents</a></div>
... '''
>>> soup = bs(html)
>>> for anchor_tag in soup.findAll('a'):
...   print anchor_tag.contents[0]
... 
link1 contents
link2 contents

除此之外,我可以想象您想要一本字典,其中包含某个术语在某个HTML文档中出现的次数。 defaultdict对这种事情有好处:

>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for anchor_tag in soup.findAll('a'):
...   d[anchor_tag.contents[0]] += 1
... 
>>> d
defaultdict(<type 'int'>, {u'link1 contents': 1, u'link2 contents': 1})

希望这会给您一些想法。 如果遇到其他问题,请回来并打开另一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM