2017-05-05 11 views
-3

[SOLVED]R/PythonのでHTMLタグをカウントする方法

私はRやPython(好みR)を使用して、HTMLページのタグの数をカウントする方法を探しています。

は、次のHTMLコードを考える:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="UTF-8"/> 
 
    <title>Document</title> 
 
</head> 
 
<body> 
 
    <!-- Conteúdo --> 
 
</body> 
 
</html>

が出力タグ(ベクトル、テーブル、リスト、等)の数を含む任意のオブジェクトであることができます。その前に、R(python)のHTMLページを読みやすくする方法も知っておく必要があります。

感謝:)

+1

'lxml' Pythonパッケージを試してください。 – Leonid

+1

ようこそStackOverflowへ。 [ヘルプ](http://stackoverflow.com/help/on-topic)の掲載ガイドラインを読み、それに従ってください。特に、[On-topic](http://stackoverflow.com/help/on-topic)と[How-to-ask](http://stackoverflow.com/help/how-to-ask)を参照してください。 。 StackOverflowは、デザイン、コーディング、リサーチ、チュートリアルのサービスではありません。 – thewaywewere

+1

私は義務的な "あなたは何をしなかったのですか?"コメント。 – hrbrmstr

答えて

0

[問題解決]私はPythonで、次のコードを作成しました。

class ContaTags: 


def __init__(self, path): 
    self.path = path 
    self.arquivos = [] 
    self.tags = [] 
    self.Lista = [] 
    count = [] 


def run(self): 
    from bs4 import BeautifulSoup 
    from html.parser import HTMLParser 

    class MyHTMLParser(HTMLParser): 
     def handle_starttag(self, tag, attrs): 
      count.append(tag) 

     def handle_endtag(self, tag): 
      count.append(tag) 

    import os 

    parser = MyHTMLParser() 

    for file in os.listdir(self.path): 
     if file.endswith(".html"): 
      self.arquivos.append(file) 

      caminho = (self.path + "\\" + file) 

      doc = open(caminho, "r", encoding = "utf8") 
      soup = BeautifulSoup(doc, 'html.parser') 

      count = [] 
      parser.feed(soup.prettify()) 

      self.tags.append(count) 


    from collections import Counter 

    z = [] 

    for i, item in enumerate(self.tags): 
     z.append(Counter(self.tags[i])) 

    self.Lista = list(zip(self.arquivos, z)) 

    return self.Lista 

クラスの呼び出し::

Sample = ContaTags("... Directory of Files...") 
Sample.run() 
を彼と私は、HTMLファイルを含むディレクトリ与えられ、ページの名前とそれに含まれる各タイプのタグの数を含むネストされたリストを返すことができました
関連する問題