我正在编写一个使用正则表达式从页面获取所有链接的PHP代码,我需要对其进行转换以获取整个网站的链接。 我想应该再次检查提取的URL,依此类推,以便脚本将访问它的所有URL,而不仅仅是给定页面。
我知道一切皆有可能,但这怎么样?感谢您的指导。
答案 0 :(得分:2)
嗯,为了确保你获得谷歌找到的所有网页,那么抓取谷歌呢?只需搜索“site:domain.com”,然后检索遵循此模式的任何内容:
<h3 class="r"><a href="http://domain.com/.*?" class=l
(你也必须逃避正确的角色,'。*?'是RegEx,它会为你提供谷歌找到的所有网址。
无论如何,这只是对替代方法的建议。
答案 1 :(得分:1)
所以,你的正则表达式抓住了所有的链接。你循环通过这些链接的循环,用cURL抓取每个,通过正则表达式运行,洗涤,冲洗,重复。
可能要确保在其中放置某种URL深度计数器,以免最终解析Internet。
也可能要确保您不会重新检查您已经遵循的链接,以免最终在Infinite Recursion Street结束。
可能还想看看线程,以免需要10万年。
答案 2 :(得分:0)
这将从url()(css),href和src属性(链接,imgs,脚本)获取URL:
#(?:href|src)="([^"]+)|url\(["']?(.*?)["']?\)#i
他们将在第1组和第2组中被捕获。 请注意,某些网址可能是相对网址,因此您必须在调用它们之前将其设为绝对网址。
答案 3 :(得分:0)
通常,您无法访问允许您检索网站上所有页面的基础服务器。
因此,您只需要执行Google的操作:从该页面获取所有链接,然后扫描这些链接以获取其他链接。