3

私のウェブサイトをクロールし、私のウェブサイト内のすべてのページの見出しの数を数えるツールまたはスクリプトを知っている人はいますか?私のウェブサイトの何ページに4つ以上の見出し(h1)があるのか​​知りたいのですが。私はScreamingFrogを持っていますが、最初の2つのH1要素のみをカウントします。どんな助けでも大歓迎です。

4

4 に答える 4

1

これは非常に特殊なタスクなので、自分で作成することをお勧めします。必要な最も単純なものは、h1 / h2/h3タグを提供するXPATHセレクターです

見出しを数える:

  1. お気に入りのプログラミング言語のいずれかを選択してください。
  2. Webサイト(Ruby、Perl、PHP)のページに対してWebリクエストを発行します。
  3. HTMLを解析します。
  4. XPATH見出しセレクターを呼び出し、返される要素の数を数えます。

サイトをクロールする:

すべてのページに対してステップ2から4を実行します(クロールするページのキューが必要になる可能性があります)。すべてのページをクロールする場合は、もう少し複雑になります。

  1. ホームページをクロールします。
  2. すべてのアンカータグを選択します
  3. それぞれからURLを抽出hrefし、Webサイトを指していないURLを破棄します。
  4. URLで確認されたテストを実行します。以前に確認したことがある場合は破棄し、そうでない場合はクロールのためにキューに入れます。

URL-見られたテスト:

URLで確認できるテストは非常に簡単です。これまでに確認したすべてのURLをハッシュマップに追加するだけです。ハッシュマップにあるURLに遭遇した場合は、無視できます。ハッシュマップにない場合は、クロールキューに追加します。ハッシュマップのキーはURLである必要があり、値は見出しの統計を保持できるような構造である必要があります。

Key = URL
Value = struct{ h1Count, h2Count, h3Count...}

それはそれについてであるはずです。たくさんのように思えますが、数百行を超えるコードであってはなりません。

于 2013-01-30T16:12:00.450 に答える
1

私の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オプションをカウントするかを指示します。

于 2013-01-30T16:19:32.473 に答える
0

コードキャニオンでツールを見つけました:Scrap(e)Webサイトアナライザー:http ://codecanyon.net/item/scrap-website-analyzer/3789481 。

私のコメントのいくつかからわかるように、少量の構成がありましたが、これまでのところうまく機能しています。

BeniBelaに感謝します。私もあなたの解決策を見て、報告します。

于 2013-01-30T17:26:22.987 に答える
0

xPather chrome拡張機能など、およびxPathクエリを使用できます。

count(//*[self::h1 or self::h2 or self::h3])

おかげで:

于 2018-02-21T00:17:16.920 に答える