I am actually using PHP but such crawling can be done by any programming languages. It will be a bit difficult to cater a lot of situations. Please help me look through the problem, and please give me some suggestion on whether I am going to the right direction.ページをクロールすると、完全なURLを<a href> or <frame src> attributes
What I know is the current url address from which I can get a list of links from <a href="
or from <frame src="
.
What I am doing is: from current url address, I can firstly get root url, for example, from http://www.abc.com/defから取得する方法は、最初にhttp://www.abc.comを得ることができます。これは状況<a href="/fff.html"
に対応するために、最初にルートURLを知る必要があります。
第2に、現在のURLからurlディレクトリを取得する必要がありますが、これは少し難しく、完全に行う方法はまだ分かりません。たとえば、http://www.abc.com/def/xyz.htmから、URLディレクトリはhttp://www.abc.com/defです。これは状況<a href="../../xyz.html">
に対応するためです。
私が直面している問題は、現在のURLディレクトリを取得する方法です。たとえば、現在のURLがhttp://www.abc.com/defの場合、defがディレクトリまたはファイルであることを実際にどのように知ることができますか? defがファイルの場合、urlディレクトリはhttp://www.abc.comになります。しかし、defがディレクトリの場合、urlディレクトリはhttp://www.abc.com/defになります。
最後に「/」があると言うと、それはディレクトリです。しかし、私の見地からは、Webページをクロールしているときに、WebページのビルダーがディレクトリURLの最後に "/"を追加することは本当に保証できません。たとえば、defがディレクトリの場合、http://www.abc.com/defはおそらくhttp://www.abc.com/def/index.htmlの略です。
http://www.abc.com/defがディレクトリかスクリプトファイルかを知るのは難しいので、<a href="xyz.html">
のような相対的なhrefから完全なURLを作るのは難しいです。
私は問題を複雑にしていますか?これには何か解決策はありますか?
例:href = "#はアンカーを意味し、現在のURLの末尾に追加するだけですが、現在のURLの状況に合っていますか? ?現在のURLは(DEFディレクトリです)http://www.abc.com/defここで、http://www.abc.com/def#xyzhttp://www.abc.com/def/index.html#xyz
に変換され、HREF = "javascriptを:またはのhref =" のVBScript:。など、私はちょうどそれを無視します
そして、 href = "xyz。???"で、???が画像ファイル、exeファイル、またはhtmlでないものは無視します。
ありがとうございます。
質問が少し乱雑になるかもしれませんが、私はそれをはっきりと説明したいと思います。
+1質問はうまく形成され、明確にされています!また、「
」も忘れないでください。 –
chown
これは任意のプログラミング言語に適用できるという理由だけで、プログラミング言語タグを追加する必要はありません。つまり、_any_を追加しないでください。私はあなたの選択が恣意的であるので 'python'を削除しましたが、あなたが実際に働いていると言っているのでPHPを残しました。 – agf
こんにちは、申し訳ありません、人気の言語タグを追加しました。この問題を理解できる人が増えています。 – user534498