📅  最后修改于: 2023-12-03 14:51:52.781000             🧑  作者: Mango
当我们需要获取网站的 favicon 信息时,使用 Goutte php 是一个简便的方法。Goutte php 是一个用于爬取网页信息的 PHP 库,具有可读性强、弹性大、使用方便的特点。
composer require fabpot/goutte
调用 Goutte php 库中的 request()
方法可以获取 HTML 页面信息,从而获取 favicon 的 URL。代码如下:
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://www.example.com');
$favicon = $crawler->filterXPath('//link[contains(@rel, "icon")]/@href')->extract(['href'])[0];
这段代码使用 filterXPath()
方法选择 HTML 中带有 "rel=icon" 属性的 <link>
标签,进而提取其 href
属性。
上述代码输出的 $favicon
变量保存了 favicon 的 URL。
有了 favicon 的 URL,我们可以使用 PHP 的 curl 执行文件下载操作。代码如下:
$ch = curl_init($favicon);
$fp = fopen('favicon.ico', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
fclose($fp);
以上代码使用 curl 将 favicon 下载到本地。下载后的文件保存在程序运行的当前路径下。
使用 Goutte php 和 curl,可以轻松获取网站的 favicon 。下面是完整的代码片段:
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://www.example.com');
$favicon = $crawler->filterXPath('//link[contains(@rel, "icon")]/@href')->extract(['href'])[0];
$ch = curl_init($favicon);
$fp = fopen('favicon.ico', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
fclose($fp);
在实际使用时,你需要根据自己的需求进行修改。