php抓取网页连接函数(协议告诉浏览器如何处理将要打开文件的标识的典型形式)
优采云 发布时间: 2021-10-17 18:32php抓取网页连接函数(协议告诉浏览器如何处理将要打开文件的标识的典型形式)
前言
链接也是超链接,它是从一个元素(文本、图像、视频等)到另一个元素(文本、图像、视频等)的链接。一个网页中的链接一般有三种,一种是绝对URL超链接,即一个页面的完整路径;另一种是相对URL超链接,一般链接到相同网站的其他页面;另一种是页面内的超链接,一般链接到同一页面内的其他位置。
一旦弄清楚了链接的类型,就知道要抓取链接,主要是绝对URL超链接和相对URL超链接。要编写正确的正则表达式,我们必须了解我们正在寻找的对象的模式。
再说说绝对链接,也叫URL(Uniform Resource Locator),它标识了互联网上唯一的资源。URL 结构由三部分组成:协议、服务器名、路径和文件名。
该协议告诉浏览器如何处理要打开的文件的识别,最常见的是http协议。本文也只考虑了HTTP协议,至于其他https、ftp、mailto、telnet协议等,可以根据需要自行添加。
服务器名称是告诉浏览器如何到达该服务器的方式。通常是域名或IP地址,有时会收录端口号(默认为80)。在FTP协议中,也可以收录用户名和密码。本文不考虑。
路径和文件名,通常用/分隔,表示文件的路径和文件本身的名称。如果没有具体的文件名,访问该文件夹下的默认文件(可以在服务器端设置)。
所以现在很明显,要抓取的绝对链接的典型形式可以概括为
每个部分可以使用的字符范围都有明确的规范。详情请参考RFC1738。然后就可以写正则表达式了。
/(http|https):\/\/([\w\d\-_]+[\.\w\d\-_]+)[:\d+]?([\/]?[\w\/\.]+)/i
解释如下: