簡體   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