0

サイトをクロールしてすべての一意のリンクを取得し、そのそれぞれのドメインのルートに XML ファイルを作成/書き込むにはどうすればよいでしょうか。mydomain.com/generatesitemap.php を呼び出すと、このファイルはドメイン内のすべてのリンクをクロールし、ファイル sitemap.xml に書き込みます。cURLを使用したPHPでこれは可能ですか?

4

1 に答える 1

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/

于 2012-04-09T09:22:32.577 に答える