如何在 Guzzle 中设置 referer Header 并获取 CDN 内容
How to set referer Header in Guzzle and get CDN Content
我想抓取一个网站,我正在使用 guzzle 7.4 和 Symfony Dom Crawler
我成功检索了 HTML 数据但是该网站正在使用 CDN 托管一些资源并且它们没有加载,因为没有发送 header 来获取这些资源
下面是代码检索html
<?php
require "vendor/autoload.php";
use Symfony\Component\DomCrawler\Crawler;
// Url
$url = 'scrapingdomain.com';
$headers = [
'referer' => 'examplescrapingdomain.com'
];
$client = new \GuzzleHttp\Client([
'headers' => $headers
]);
// go get the data from url
$response = $client->request('GET', $url);
$html = ''.$response->getBody();
$crawler = new Crawler($html);
echo $html;
?>
如果我直接访问 CDN 并设置 referer header 我得到的响应是 200
代码下方
<?php
require "vendor/autoload.php";
use Symfony\Component\DomCrawler\Crawler;
// Url
$url = 'examplecdnresource.com/Images.png';
$headers = [
'referer' => 'examplescrapingdomain.com'
];
$client = new \GuzzleHttp\Client([
'headers' => $headers
]);
// go get the data from url
$response = $client->request('GET', $url);
$html = ''.$response->getBody();
$crawler = new Crawler($html);
echo $html;
?>
我想获取 scrapdomain.com 获取资源并下载它拥有的 cdn 托管图像
要在已抓取的 html 中获取 CDN 托管内容,我需要做的就是使用 file_get_content 函数并设置 referer 流以下载没有内部 guzzle 的数据,因为我正在获取 css 和图片文件
我想抓取一个网站,我正在使用 guzzle 7.4 和 Symfony Dom Crawler
我成功检索了 HTML 数据但是该网站正在使用 CDN 托管一些资源并且它们没有加载,因为没有发送 header 来获取这些资源
下面是代码检索html
<?php
require "vendor/autoload.php";
use Symfony\Component\DomCrawler\Crawler;
// Url
$url = 'scrapingdomain.com';
$headers = [
'referer' => 'examplescrapingdomain.com'
];
$client = new \GuzzleHttp\Client([
'headers' => $headers
]);
// go get the data from url
$response = $client->request('GET', $url);
$html = ''.$response->getBody();
$crawler = new Crawler($html);
echo $html;
?>
如果我直接访问 CDN 并设置 referer header 我得到的响应是 200
代码下方
<?php
require "vendor/autoload.php";
use Symfony\Component\DomCrawler\Crawler;
// Url
$url = 'examplecdnresource.com/Images.png';
$headers = [
'referer' => 'examplescrapingdomain.com'
];
$client = new \GuzzleHttp\Client([
'headers' => $headers
]);
// go get the data from url
$response = $client->request('GET', $url);
$html = ''.$response->getBody();
$crawler = new Crawler($html);
echo $html;
?>
我想获取 scrapdomain.com 获取资源并下载它拥有的 cdn 托管图像
要在已抓取的 html 中获取 CDN 托管内容,我需要做的就是使用 file_get_content 函数并设置 referer 流以下载没有内部 guzzle 的数据,因为我正在获取 css 和图片文件