web-dev-qa-db-ja.com

ウェブサイト上のすべてのリンク/ページを見つける方法

任意のウェブサイトですべてのページとリンクを見つけることは可能ですか? URLを入力して、そのサイトからのすべてのリンクのディレクトリツリーを作成したいですか?

私はHTTrackを見ましたが、それはサイト全体をダウンロードし、ディレクトリツリーが必要です。

83
Jonathan Lyon

linkchecker —サイトをクロールし(robots.txtに従いながら)、レポートを生成します。そこから、ディレクトリツリーを作成するためのソリューションをスクリプト化できます。

63
Hank Gay

ブラウザに開発者コンソール(JavaScript)がある場合、次のコードを入力できます。

urls = document.querySelectorAll('a'); for (url in urls) console.log(urls[url].href);

短縮:

n=$$('a');for(u in n)console.log(n[u].href)
34
ElectroBit

これがプログラミングの質問であれば、取得したすべてのコンテンツを解析するための独自の正規表現を作成することをお勧めします。ターゲットタグは、標準HTMLのIMGおよびAです。 Javaの場合、

final String openingTags = "(<a [^>]*href=['\"]?|<img[^> ]* src=['\"]?)";

これは、PatternクラスとMatcherクラスとともに、タグの始まりを検出する必要があります。 CSSも必要な場合は、LINKタグを追加します。

ただし、最初に考えたほど簡単ではありません。多くのWebページは整形式ではありません。すべての不規則な表現を考慮する必要がある場合、人間が「認識」できるすべてのリンクをプログラムで抽出することは非常に困難です。

がんばろう!

0
mizubasho