私のウェブサイトをクロールし、私のウェブサイト内のすべてのページの見出しの数を数えるツールまたはスクリプトを知っている人はいますか?私のウェブサイトの何ページに4つ以上の見出し(h1)があるのか知りたいのですが。私はScreamingFrogを持っていますが、最初の2つのH1要素のみをカウントします。どんな助けでも大歓迎です。
4 に答える
これは非常に特殊なタスクなので、自分で作成することをお勧めします。必要な最も単純なものは、h1 / h2/h3タグを提供するXPATHセレクターです。
見出しを数える:
- お気に入りのプログラミング言語のいずれかを選択してください。
- Webサイト(Ruby、Perl、PHP)のページに対してWebリクエストを発行します。
- HTMLを解析します。
- XPATH見出しセレクターを呼び出し、返される要素の数を数えます。
サイトをクロールする:
すべてのページに対してステップ2から4を実行します(クロールするページのキューが必要になる可能性があります)。すべてのページをクロールする場合は、もう少し複雑になります。
- ホームページをクロールします。
- すべてのアンカータグを選択します。
- それぞれからURLを抽出
href
し、Webサイトを指していないURLを破棄します。 - URLで確認されたテストを実行します。以前に確認したことがある場合は破棄し、そうでない場合はクロールのためにキューに入れます。
URL-見られたテスト:
URLで確認できるテストは非常に簡単です。これまでに確認したすべてのURLをハッシュマップに追加するだけです。ハッシュマップにあるURLに遭遇した場合は、無視できます。ハッシュマップにない場合は、クロールキューに追加します。ハッシュマップのキーはURLである必要があり、値は見出しの統計を保持できるような構造である必要があります。
Key = URL
Value = struct{ h1Count, h2Count, h3Count...}
それはそれについてであるはずです。たくさんのように思えますが、数百行を超えるコードであってはなりません。
私のXidelはそれを行うことができます、例えば:
xidel http://stackoverflow.com/questions/14608312/seo-web-crawling-tool-to-count-number-of-headings-h1-h2-h3 -e 'concat($url, ": ", count(//h1))' -f '//a[matches(@href, "http://[^/]*stackoverflow.com/")]'
-e引数のxpath式は、h1-タグとどのページの-fオプションをカウントするかを指示します。
コードキャニオンでツールを見つけました:Scrap(e)Webサイトアナライザー:http ://codecanyon.net/item/scrap-website-analyzer/3789481 。
私のコメントのいくつかからわかるように、少量の構成がありましたが、これまでのところうまく機能しています。
BeniBelaに感謝します。私もあなたの解決策を見て、報告します。