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 数据,则很难获得链接。可能还有其他导航技巧,例如选择组合框作为下拉菜单。

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

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

是一页还是一页?

而这个呢?

 /feedback
 /feedback?mode=sent

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

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

http://phpcrawl.cuab.de/

于 2012-04-09T09:22:32.577 回答