2012-04-09 19 views
0

どのようにしてすべての固有リンクのサイトをクロールし、そのドメインのルートにXMLファイルを作成/書き込みできますか?私はmydomain.com/generatesitemap.phpを呼び出すときのようなものが必要です。そして、このファイルはドメイン内のすべてのリンクをクロールし、ファイルsitemap.xmlに書き込みます。これはPHPでcURLで可能ですか?PHPの動的サイト用のSitemap.xmlファイルの生成

答えて

0

サイトによって異なります。単純なサイトの場合は、タスクは簡単です。 curlまたはfile_get_contentsを使用してサイトのルートページを取得し、すべてのリンクをpreg_matchし(参照番号http://www.mkyong.com/regular-expressions/how-to-extract-html-links-with-regular-expression/を参照)、サイト内のすべてのリンクを再帰的に取得して、すでに処理されているリンクを処理しない。

JavaScriptが再生されると、タスクが複雑になります。ナビゲーションでJavaScriptデータを使用すると、リンクを取得するのが難しくなります。ドロップダウンメニューとしてselect-comboboxのような他のナビゲーショントリックがあるかもしれません。

クエリ文字列を含むページがあると、タスクがさらに複雑になる可能性があります。カタログセクションがあるとします。 URLは次のようなものです:

/catalogue 
    /catalogue?section=books 
    /catalogue?section=papers 
    /catalogue?section=magazines 

1ページですか?

これはどうですか?

/feedback 
/feedback?mode=sent 

このような場合は注意してください。

Google検索には、このようなクローラの例がたくさんあります。たとえば、これを見てください。

http://phpcrawl.cuab.de/

関連する問題