2012-03-18 12 views
1

日付を抽出したいファイルがあります.HTMLソースファイルなので、必要のないコードやフレーズがたくさんあります。私は、特定のHTMLタグに包まれています日付のすべてのインスタンスを抽出する必要があります。HTMLタグ内のファイルからテキストを掻き集める

略称タイトル=「((これは私が必要なテキストである))、」データ・UTIME =」

に最も簡単な方法は何

+0

これは*データマイニングではありません。タグを取り消し、[タグ:ウェブスクレイピング]にタグを付け直しました。 データマイニングは基本的に大規模な*統計分析*の一種です。これはデータマイニングのための多くの前処理です。ああ、なぜこのタグが「優れている」のですか? –

答えて

0

あなたがJsoupを使用することができますJavaを使用している場合。これは、あなたの質問から明らかではない?これを達成するため、あなたはエクセルVBAを使用している場合

+0

基本的に私は保存されたWebページから抽出された15MBのファイルを持っています。ページにはFacebookのメッセージが含まれていて、各メッセージに日付が記録されています。日付ごとのメッセージを分析したいので、日付が表示されるたびに抽出する必要があります。それをクリアする希望。 – user1023420

+0

もしプログラミング言語が問題でなければ、私は確かにJSoup –

+0

またはPythonを好むならBeautifulSoupをお勧めします。 –

5

をやろうとしている正確に何について詳しく説明してください、基準値を設定(Tools - References)をMSHTMLライブラリ(参考メニューのMicrosoft HTML Object Libraryと表記)

Sub ScrapeDateAbbr() 

    Dim hDoc As MSHTML.HTMLDocument 
    Dim hElem As MSHTML.HTMLGenericElement 
    Dim sFile As String, lFile As Long 
    Dim sHtml As String 

    'read in the file 
    lFile = FreeFile 
    sFile = "C:/Users/dick/Documents/My Dropbox/Excel/Testabbr.html" 
    Open sFile For Input As lFile 
    sHtml = Input$(LOF(lFile), lFile) 

    'put into an htmldocument object 
    Set hDoc = New MSHTML.HTMLDocument 
    hDoc.body.innerHTML = sHtml 

    'loop through abbr tags 
    For Each hElem In hDoc.getElementsByTagName("abbr") 
     'only those that have a data-utime attribute 
     If Len(hElem.getAttribute("data-utime")) > 0 Then 
      'get the title attribute 
      Debug.Print hElem.getAttribute("title") 
     End If 
    Next hElem 

End Sub 

ソースファイルを呼び出してからファイルがローカルであると仮定しました。最初にダウンロードする必要がある場合は、MSXMLとこのコードの別の参照が必要です。

Sub ScrapeDateAbbrDownload() 

    Dim xHttp As MSXML2.XMLHTTP 
    Dim hDoc As MSHTML.HTMLDocument 
    Dim hElem As MSHTML.HTMLGenericElement 

    Set xHttp = New MSXML2.XMLHTTP 
    xHttp.Open "GET", "file:///C:/Users/dick/Documents/My%20Dropbox/Excel/Testabbr.html" 
    xHttp.send 

    Do 
     DoEvents 
    Loop Until xHttp.readyState = 4 

    'put into an htmldocument object 
    Set hDoc = New MSHTML.HTMLDocument 
    hDoc.body.innerHTML = xHttp.responseText 

    'loop through abbr tags 
    For Each hElem In hDoc.getElementsByTagName("abbr") 
     'only those that have a data-utime attribute 
     If Len(hElem.getAttribute("data-utime")) > 0 Then 
      'get the title attribute 
      Debug.Print hElem.getAttribute("title") 
     End If 
    Next hElem 

End Sub 
関連する問題