在 PHP 中为动态站点生成站点地图.xml文件


Generating Sitemap.xml file for Dynamic sites in PHP

如何抓取所有唯一链接的网站,并将XML文件制作/写入该相应域的根目录。我想要类似我打电话给 mydomain.com/generatesitemap.php 这个文件抓取域中的所有链接并将它们写入文件站点地图.xml。这在带有cURL的PHP中可能吗?

这取决于您的网站。如果它是简单的网站 - 那么任务很简单。通过 curl 或 file_get_contents 抓取您的网站根页面,preg_match所有链接(请参阅此处,有关参考 http://www.mkyong.com/regular-expressions/how-to-extract-html-links-with-regular-expression/),然后递归抓取您网站内的所有链接,不处理链接,这些链接已准备好处理。

当 JavaScript 发挥作用时,任务变得更加复杂。如果导航使用 JavaScript 数据,则很难获取链接。可能还有其他导航技巧,例如选择组合框作为下拉菜单。

如果您有包含查询字符串的页面,则任务可能会更加复杂。假设您有目录部分。网址是这样的:

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

是不是一页?

那么这个呢?

 /feedback
 /feedback?mode=sent

所以你应该照顾好这种情况。

谷歌搜索中有很多这样的爬虫的例子。例如,看看这个:

http://phpcrawl.cuab.de/