気楽なソフト工房

プログラミングについていろいろな記事を書いています。



mykonos2008

Author:mykonos2008
システムエンジニアとして働いている30代の会社員です。
仕事や趣味でプログラムを書いている方の役に立つ記事を書いていきたいと思っています。
ご意見、ご感想はこちらまで
If you are an english speaker,Please visit my english blog.

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
お待たせしました。SEO分析ツール[Crete]の正式版をリリースしました。フリーソフトなのでご自由にご利用ください。
キーワード分析はSEOにおいての万能ではありませんが、キーワードを分析し、ランキング上位のサイトと同じ構成のページを作ることにより、
上位にランクインするために必要な条件を1つクリアしたことになると思います。

是非お役立てください。

Creteのダウンロード

マニュアル

○動作環境
本ソフトウェアの稼動には「.NET Framework3.5」が必要です。

Windowss Updateの「カスタム」インストール、または以下のURLからダウンロードしてインストールしてください。

.NET Framework3.5

・「Microsoft .NET Framework 3.5 日本語 Language Pack」について

上記URLからインストールされる方は、同じページ内にあるリンクから「Microsoft .NET Framework 3.5 日本語 Language Pack」もインストールしてください。Windows Updateを利用された場合は、自動的にインストールされます。

現時点で、「Microsoft .NET Framework 3.5 Service Pack 1」がリリースされていますので、.NET Framework3.5のインストール後に、こちらもインストールしてください。
こちらも、.NET Framework3.5のインストール後、Windows Updateの「カスタム」インストールを行うことにより、インストールすることが可能です。




Web Services by Yahoo! JAPAN




スポンサーサイト
先日、ベータ版をリリースしましたSEO分析ツール「Crete」では、キーワードが含まれているタグを判別するためにHTML解析を行っています。
実は、「Crete」の開発の中では最も時間がかかったのはこの部分でした。

せっかくなので是非ご活用していただきたくライブラリ化したので、使い方をご紹介します。

ライブラリは以下の6つのファイルで構成されています。名前空間は「CreteLib」です。

・HtmlDocument.cs ・・HTMLドキュメントを表すクラス
・HtmlNode.cs ・・HTMLの要素を表すクラス
・HtmlTextNode.cs ・・HTMLの要素の中で、タグにはさまれたテキスト部分を表すクラス
・HtmlNodeList.cs ・・ノードのリスト
・HtmlParser.cs ・・HTMLを解析するクラス。内部的に利用しているクラスなので直接利用する必要はありません。
・NodeType.cs ・・ノードの種類を表す列挙体


使い方は非常に簡単です。以下のコードでHTMLを解析することが出来ます。


   String source = "<html><body>HTML解析</body></html>";

   HtmlDocument doc = new HtmlDocument();
   doc.Load(source);


解析が完了したら、HtmlDocumentクラスのインスタンスから必要な情報を取り出すことができます。
GetNodesByTagName(String tagName)は、引数に指定されたタグ名のノードの一覧を返すメソッドです。
タグ名の指定は、大文字、小文字を問いません。

以下のコードは、aタグの一覧を取得し、そのhref属性をコンソールに表示するサンプルです。

   HtmlNodeList nodeList = doc.GetNodesByTagName("a");

   foreach (HtmlNode node in nodeList)
   {
       Console.WriteLine("node:{0}", node["href"]);
   }

HtmlDocumentクラスには他にも、タグに含まれるテキストによりノードの一覧を取得するGetNodesByText()や
属性の値により、ノードの一覧を取得するGetNodesByAttribute()があります。

Htmlのノードには、HtmlNodeクラスとHtmlTextNodeクラスがありHtmlTextNodeクラスがHtmlNodeクラスを継承しています。
HtmlNodeクラスは、HTMLのタグ要素を表し、HtmlTextNodeはタグに挟まれたテキスト部分を表します。

HtmlNodeクラスは、TagNameやAttributes(属性)、ChildNodes(子ノードのリスト)、InnerText(タグに挟まれた文字列)などのプロパティが
あります。ChildNodesを移動していくことで、HTMLのツリー構造を解析することができます。

InnerTextは、ChildNodesを連結したものです。
以下にHtmlTextNodeクラスのText属性との違いを例示します。


<div> ・・HtmlNode
テキスト1  ・・HtmlTextNode
<br>   ・・HtmlNode
テキスト2  ・・HtmlTextNode
</div>


HtmlTextNodeのテキスト属性には、それぞれ「テキスト1」や「テキスト2」が格納されています。
一方、divタグのInnterTextには「テキスト1<br>テキスト2」が格納されます。ただし、さらに子供の要素
をもつタグについては無視しています。

ライセンスフリーでソースも公開していますので、是非お使いください。
バグやご要望、なんでもかまいませんのでフィードバックいただけるとうれしいです。

CreteLibのダウンロード
ソースのダウンロード


Creteのテストを兼ねて「SEO Yahoo」というキーワードでGoogleにランクインしているサイトを分析してみました。
分析は、1~5位、101~105位、301~305位にはいっているサイトを対象にしました。
1番台、100番台、300番台で傾向が違うのかを知りたくてやってみました。

結果は以下のようになりました。
順位単語出現回数出現頻度キーワードが出現するタグ単語の総数
1SEO477.16<title> <meta> <h1> <a> <img> <h2> <p> <h4> <dd>656
 Yahoo142.13<title> <meta> <a> <img> <p> <dd>-
2SEO254.24<title> <meta> <h1> <strong> <br> <IMG> <h2> <a>590
 Yahoo233.9<title> <meta> <h1> <strong> <IMG> <br> <h2> <b> <a>-
3SEO194.95<title> <meta> <h1> <img> <a> <strong> <p> <h3>384
 Yahoo194.95<title> <meta> <h1> <a> <h2> <strong> <span> <p> <h3>-
4SEO563.17<title> <meta> <a> <span> <img> <div>1765
 Yahoo583.29<title> <meta> <a> <span> <div>-
5SEO1998.96<title> <input> <img> <a> <span>388
 Yahoo120.54<title> <meta> <link> <a> <img> <label> <span> <dt> <p>-
101SEO193.14<title> <meta> <b> <img> <font> <br> <a> <area>606
 Yahoo50.83<title> <meta> <b> <font> <img>-
102SEO319.14<title> <meta> <a> <span> <p> <img> <strong> <br>339
 Yahoo102.95<title> <a> <span> <br> <div> <h3> <p>-
103SEO31.95<title> <meta> <a> <div> <img>52
 Yahoo10.65<title> <meta> <a>-
104SEO335.02<title> <meta> <h1> <p> <a> <strong>658
 Yahoo223.34<title> <h1> <p> <a> <strong> <img>-
105SEO216.33<title> <strong> <a> <img> <p>332
 Yahoo72.11<title> <meta> <p> <img> <a>-
301SEO61.04<title> <meta> <h1> <p>576
 Yahoo61.04<title> <meta> <h1> <p>-
302SEO153.68<title> <meta> <a> <strong> <span>174
 Yahoo102.45<meta> <strong> <span> <a>-
303SEO123.07<title> <a> <div> <address> <p> <label>131
 Yahoo133.32<title> <div> <em> <a> <p>-
304SEO183.05<title> <a> <p> <div>591
 Yahoo172.88<title> <a> <p> <div>-
305SEO111.6<title> <meta> <font> <strong> <a>225
 Yahoo71.02<title> <font> <strong>-

この結果から、1~5位のページを101~105位のページと比較すると、キーワードの出現頻度に関しては傾向として言えるほどの差はありませんでした。
しかし、1~5位のサイトは<h1>タグにしっかりキーワードを埋めていることが分かりました。

続いて、101~105位と301~305位を比較すると、301~305位の方が平均的に、キーワードの出現頻度が低く、
また<meta>タグにキーワードを埋めていないことが分かりました。

検索エンジンの順位を決定するのはキーワードだけではないので、これだけで、決め付けることは出来ないのですが
少なくとも、上位にくるサイトはSEOとしてやるべきことをしっかりやっていることが分かります。

従って、自分のサイトが狙っているキーワードで上位にランクインしているサイトのキーワード構成をまねて、ページを作ることで、
上位にランクインされる可能性が高まるのではと思います。 みなさまも、是非「Crete」を活用して、分析しサイトに活かして頂ければと思います。
Web Services by Yahoo! JAPAN
お待たせしました。SEO分析ツール[Crete]のベータ版をリリースしました。フリーソフトなのでご自由にご利用ください。

Creteのダウンロード

マニュアル

○動作環境
本ソフトウェアの稼動には「.NET Framework3.5」が必要です。

Windowss Updateの「カスタム」インストール、または以下のURLからダウンロードしてインストールしてください。

.NET Framework3.5

・「Microsoft .NET Framework 3.5 日本語 Language Pack」について

上記URLからインストールされる方は、同じページ内にあるリンクから「Microsoft .NET Framework 3.5 日本語 Language Pack」もインストールしてください。Windows Updateを利用された場合は、自動的にインストールされます。

現時点で、「Microsoft .NET Framework 3.5 Service Pack 1」がリリースされていますので、.NET Framework3.5のインストール後に、こちらもインストールしてください。
こちらも、.NET Framework3.5のインストール後、Windowss Updateの「カスタム」インストールを行うことにより、インストールすることが可能です。


Web Services by Yahoo! JAPAN




新年あけましておめでとうございます。
今年もどうぞよろしくお願いします。

本日は新しい年になったところで、現在新たに開発中のソフトウェアを紹介させていただきます。

紹介するソフトはSEO分析ソフト[Crete(クレタ)]です。このソフトは[Yahoo API]
「テキスト解析」と「検索」を利用してホームページに含まれるキーワードを分析するためのものです。


(画像クリックで拡大表示)

○主な機能
・ホームページに含まれるキーワードを抽出し、以下の情報を表示します。
[キーワード、キーワードの出現回数、全体に占める割合、キーワードが含まれているタグ]



・抽出したキーワードと一緒に検索されるキーワードの一覧を表示します。また、そのキーワードの組み合わせがページ内に存在するかをチェックします。



・分析するホームページはURLを指定して取得してくることも、テキストエリアに直接入力することも可能です。

SEO対策としてはキーワードの他にリンクなど、たくさんの要素が有るのでこの分析結果によって一律順位がどうなるということは
言えないのですがが、私自身、複数のHPを運営している経験からキーワードはかなり重要な要素を占めていると考えています。

Webで検索を行うユーザは大抵、複数のキーワードを入力して検索することが多いので、入力される複数のキーワードを
想定して、ホームページを作っていくことはかなり有効なSEOの手段だと思っています。複数のキーワードに対して
マッチすれば、外部リンクなどが無くても上位に表示されることはよくあります。

[Crete]はキーワードという観点でSEOを考える際に有効なツールになると考えています。近々、ベータ版をリリースしますので、是非よろしくお願いします。



Web Services by Yahoo! JAPAN




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。