Webサイトのテキスト情報を取得して解析する
Webサイトから文字情報だけを取得し、指定した単語がどれくらい含まれているかを解析するパソコン作業の自動化
ここでメインで紹介するのは、Webサイトからテキスト情報を取得するパソコン操作の自動化についてです。これが出来れば、そのあとにテキスト情報を解析し、「文字数はWebサイトの文字数はどのくらいか」、「指定した単語がどの程度の頻度で使用されているか」などを解析することが可能です。
VBScriptというWindowsを自動化操縦するためのマクロプログラムを用いて実現していきます。何もインストールする必要はありませんよ。
・多くのWebサイトからテキスト情報を抜き出してくる必要がある人
・VBScriptでWebサイトの自動操作に興味のある方
インストールなし!5分でできるWebサイトからテキスト情報を抜き出す操作の自動化
まずは以下のプログラムコードを「Webサイトテキスト取得.vbs」というファイル名を作って書き込みましょう。ところで、拡張子は表示されていますか?「.vbs」の部分です。まだ表示させる設定にしていない方は「ファイルの拡張子を表示する設定」から設定後にこの先へお進みください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
'変数の宣言を強制 Option Explicit '変数objIEを宣言 Dim objIE 'objIEにInternetExplorer.Applicationのオブジェクトを設定 Set objIE = WScript.CreateObject("InternetExplorer.Application") 'テキストを取得したいサイトURLを指定 objIE.Navigate "https://pc-automation.tech/wp/" 'Webサイトを読み終えるまで待機 Do Until objIE.Busy = False '1秒待機 WScript.Sleep(1000) Loop 'サイトのテキスト部分をファイルに保存 Dim objFSO ' FileSystemObject Dim objFile ' ファイル書き込み用 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("サイトテキスト情報.txt", 2, True,-1) objFile.WriteLine(CStr(objIE.document.body.innerText)) objFile.Close Set objFile = Nothing Set objFSO = Nothing 'InternetExplorerを閉じる objIE.Quit |
書き込んだら、保存して閉じます。完成です。これで、本サイトのトップページのテキスト情報を取得するためのプログラムが完成しました。
早速プログラムを実行してみましょう。「Webサイトテキスト取得.vbs」をダブルクリックするだけです。すると、プログラムがある場所と同じフォルダに「サイトテキスト情報.txt」というファイルが作成されたはずです。この中にサイトのテキスト情報が記載されています。下の画像は「サイトテキスト情報.txt」の中身の一部です。
さて、自分専用のプログラムにするためにはプログラムのコードを少し編集する必要があります。本サイトのトップページではなく、自分がテキスト情報を取得したいWebサイトに対するプログラムに書き換えてみましょう。
そのためには11行目の、
「https://pc-automation.tech/wp/」の部分を自分の好きなURLに変更しましょう。これで、そのサイトの情報を取得できるようになりました。
また、テキスト情報を書き出すファイル「サイトテキスト情報.txt」の名前を変えるには23行目の、
「サイトテキスト情報.txt」の部分を自分の好きな出力ファイル名に変更してください。
さて、このようにして抜き出したサイトのテキスト情報はまた別のプログラムで解析することができます。例えば、抜き出したテキスト情報から文字数と指定した単語の数を取得したい場合には、「ドラック&ドロップするだけでファイルの様々な情報をチェック」で紹介したようなプログラムを使えば実現できます。
ただし、前回は文字数と指定した単語の数の情報はメッセージボックスに表示させるようにしていましたが、今回はこれもテキストファイルに書き出すように編集してみましょう。以下のコードを「サイトテキスト情報の解析.vbs」と名前を付けたファイルへ保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
'変数の宣言を強制 Option Explicit '変数objFsoを宣言 Dim objFso 'objFsoにScripting.FileSystemObjectのオブジェクトをセット Set objFso = WScript.CreateObject("Scripting.FileSystemObject") 'ファイル名を取得 if WScript.Arguments.Count = 0 then WScript.echo("ファイルが指定されていません。") WScript.Quit(-1) else '変数objFileを宣言 Dim objFile Set objFile = objFso.getFile(WScript.Arguments(0)) end if 'ファイル情報の取得 ''ファイルの名称 Dim name name = Cstr(objFile.Name) ''ファイル内文字数カウント Set objFile = objFso.OpenTextFile(WScript.Arguments(0), 1, True, -1) Dim strCharacters strCharacters = objFile.ReadAll strCharacters = Replace(strCharacters, vbCrLf, "") Dim countStrings countStrings = Cstr(Len(strCharacters)) objFile.close ''ファイル内の指定単語カウント Dim searchWord searchWord = "自動化" Set objFile = objFso.OpenTextFile(WScript.Arguments(0), 1, True, -1) Dim allSentence allSentence = objFile.ReadAll Dim ingStart ingStart = 1 Dim countWord, ingStartTmp countWord = -1 Do until ingStart < ingStartTmp countWord = countWord + 1 ingStartTmp = ingStart + 1 ingStart = InStr(ingStartTmp, allSentence, searchWord) Loop countWord = Cstr(countWord) 'テキスト情報の解析結果の出力 Dim objFileo ' ファイル書き込み用 Dim currentPass currentPass = objFso.getParentFolderName(WScript.ScriptFullName) Set objFso = WScript.CreateObject("Scripting.FileSystemObject") Set objFileo = objFso.OpenTextFile(currentPass + "\サイトテキスト情報の解析結果.txt", 2, True, -1) objFileo.WriteLine("文字数:" + countStrings) objFileo.WriteLine("「" + searchWord + "」の数:" + countWord) objFileo.Close Set objFileo = Nothing Set objFso = Nothing |
書き込んだら保存して閉じましょう。「サイトテキスト情報の解析.vbs」ファイルの上に「サイトテキスト情報.txt」をのせてみてください。
「サイトテキスト情報の解析結果.txt」という解析結果ファイルが作成されましたか?この中に「サイトテキスト情報.txt」の解析結果、すなわち今注目しているサイトの解析情報が書き出されたのです。下の画像が結果ファイルの内容です。
ここでは、このサイトの文字数と「自動化」という単語がいくつ含まれているかを書き出しました。ここを自分の欲しい情報を書き出すように改良していくとより使いやすいプログラムとなるでしょう。ちなみに、「自動化」ではなく違う単語の数を数えるように変更したい場合は、37行目の
の「自動化」を自分の好きな単語へ変更しましょう。
おわりに
ここでは、Webサイトのテキスト情報を取得して解析する方法について紹介しました。VBScriptと呼ばれる二つのプログラムを記載しましたが、プログラミングを知らない方には結構複雑なプログラムに見えたかもしれません。
しかし、実際に学んでみるとここで書かれているコードは単純なものばかりです。それが少し多めに書かれてあるに過ぎません。ここで紹介したプログラムの例に限らず、普段のパソコン作業を自動化するために必要なプログラムはどれも単純なコマンドだけで実現できるものばかりです。
パソコン自動化プログラミングはプログラミング初心者の方が始めるには持って来いの題材であると考えています。興味がありましたら、「パソコン作業の自動化プログラミング 無料体験レッスン」を受講してみませんか?
自動化プログラムの作成を依頼しませんか?
幣サイトでは、Windowsパソコンの自動化プログラムの作成サービスを行っています。
本サービスの特徴は、
・安価な値段
・個人から法人までどなたでも対応
・お客様の要望を全力で実現
です。
安いからといって、決して手は抜きません。
まずは、下のボタンからWindowsパソコンの自動化プログラムの作成サービスの詳細をご確認ください。