php抓取网页匹配url(PHP正则表达式如何处理将要打开文件的标识和几种形式?)
优采云 发布时间: 2021-09-12 21:08php抓取网页匹配url(PHP正则表达式如何处理将要打开文件的标识和几种形式?)
我最近有一项任务是从页面中抓取页面上的所有链接。当然,使用 PHP 正则表达式是最方便的方式。要编写正则表达式,您必须首先总结模式。页面上的链接有多少个表单?
链接也是超链接,是从一个元素(文本、图像、视频等)到另一个元素(文本、图像、视频等)的链接。网页中的链接一般分为三种,一种是绝对网址超链接,即一个页面的完整路径;另一种是相对URL超链接,一般链接到同一网站的其他页面;另一个是页面内的超链接,这通常链接到同一页面内的其他位置。
了解链接的种类就知道要抓取链接,主要是绝对网址超链接和相对网址超链接。要写出正确的正则表达式,我们必须了解我们正在寻找的对象的模式。
先说绝对链接,也叫URL(Uniform Resource Locator),它标识了互联网上唯一的资源。 URL结构由三部分组成:协议、服务器名、路径和文件名。
该协议告诉浏览器如何处理要打开的文件的标识符,最常见的是http协议。本文也只考虑 HTTP 协议。至于其他的https、ftp、mailto、telnet等,可以根据需要自行添加。
服务器名称是告诉浏览器如何到达这个服务器的方式。通常是域名或IP地址,有时会收录端口号(默认为80)。在FTP协议中,也可以收录用户名和密码,我不考虑。
路径和文件名,通常用/分隔,表示文件的路径和文件本身的名称。如果没有具体的文件名,则访问该文件夹下的默认文件(可以在服务器端设置)。
到此就明白了,典型的绝对链接被爬取的形式可以概括为
每个部分可以使用的字符范围都有明确的规范。详情请参考RFC1738。那么正则表达式就可以写出来了。