ページを解析してすべての有効なURLを見つけようとしていますが、ここに問題があります。ページ上のリンクには、URL(_http://site.com/dir/page.html)、絶対URI(/dir/page.html)、相対URI(スラッシュを開始しないdir / page.html)の3種類があります。 。おそらく私は用語について間違っています、私はhtmlコーダーではありません。しかし、それは決してそうではありません。
すべてのURL(つまり、_http://site.com/dir/subdir/page.htmlなど)を見つけて収集する必要があります。そしてここに問題があります。<ahref = "subdir / page.html">リンク</a>のようなリンクを含むページ_http://site.com/dir/page.htmlがある場合は、_http://siteに移動することになっています。 .com / dir / subdir/page.html。ただし、ページのヘッドセクションに<base href = "/">がある場合、同じリンクは_http://site.com/subdir/page.htmlにつながります。つまり、_http://siteとは異なります。
問題は、ターゲットURLに影響を与える可能性のあるページ上のhtmlコードに他に何かがあるかどうかです。
前もって感謝します。
2 に答える
HTML自体では、あなたが言及したhrefベース以外に何もありません
トリッキーになる可能性があり、考慮すべきことは、スクリプトの実行によって作成されたページにリンクがある可能性があるため、window.location.href=somethingのようなものです。リンクが明確に記述されていればこれは簡単ですが、スクリプトによって計算される可能性もあり、単純な解析を使用してリンクを見逃したり、読み間違えたりする可能性があります。
問題は、実際にはhtmlでのURLリンクがどのように機能するかです。http ://www.webdevelopersnotes.com/design/relative_and_absolute_urls.php3をお読みください。つまり、/ admin /にいて、/ admin/login.aspxが必要だとします。私の相対URLはlogin.aspxですが、絶対URLは/admin/login.aspxに意味がありますか?
つまり、基本的に私が言っているのは、リンクが提供されているディレクトリを検討することです。これにより、使用するURLリンクのタイプとコンテンツが決まります。
それ以外に、すでに述べたように、jscriptとサーバー側のコードもリンクを行うことができます。