咕噜咕噜的 http 客户端模棱两可的响应


Guzzle Http Client ambiguous response

这是我在不同文件中的代码

use Symfony'Component'DomCrawler'Crawler;
$guzzle = new GuzzleHttp'Client(['base_url' => 'http://pricematch.pk/mobile/samsung-galaxy-s6-80514-price-in-Pakistan']);
$response = $guzzle->get();
$crawler = new Crawler((string)$response->getBody());
echo $crawler->filter('.product-shop-wrapper .price')->text()."'r'n";

url 是硬编码的,并且此 URL 成功回显过滤后的文本。当以下代码中每个循环中的相同 url/任何 url 来自变量时

$guzzle = new GuzzleHttp'Client(['base_url' => 'pricematch.pk/mobile-phone-prices-in-pakistan']);
$response = $guzzle->get();
$crawler = new Crawler((string)$response->getBody());
$crawler->filter('.product-name')->each(function ($node,$counter) {
    echo $counter." ".$node->text()."'r'n";
    $url=$node->filter('a')->extract(array('href'))[0]."'r'n";
    echo $url."'r'n";
    $url='http://pricematch.pk'.$url;
    echo $url;
    $guzzle = new GuzzleHttp'Client(['base_url' => $url]);
    $response = $guzzle->get();
    $crawler = new Crawler((string)$response->getBody());

爬网程序抛出异常,指出当前节点列表为空。href 返回一个相对 url,我在上面的代码中将其与根 url 一起附加。我已经多次打印了生成的网址。即使 url 与代码 #1 中的 url 相同,筛选器也会引发异常。我做错了什么?
Update 2:我刚刚发现code2爬虫中的数据来自

pricematch.pk/mobile-phone-prices-in-pakistan

它应该来自哪里

$url
这是怎么回事?

愚蠢的

我。在上面的代码中提取 URL 时,我连接了换行符,该换行符可能会将 URL 编码为在 URL 末尾显示为 __,这基本上改变了 URL,因此更改了响应。