首页 > 解决方案 > 如何在 Guzzle Http 客户端中使用 Accept-Encoding

问题描述

我使用这个 php 库http://docs.guzzlephp.org/en/stable/overview.html从远程站点获取内容。(第 6 版)

我正在随机测试两个网址。

  1. 网址: https ://www.asos.com/jack-jones/jack-jones-leather-chelsea-boot-in-black/prd/12700615?clr=pirate-black&colourWayId=16521640&SearchQuery=&cid=57743

代码:

$url = 'https://www.asos.com/jack-jones/jack-jones-leather-chelsea-boot-in-black/prd/12700615?clr=pirate-black&colourWayId=16521640&SearchQuery=&cid=57743';

$request = $this->client->request('GET', $url, [
    'debug' => true,
    'headers' => [
        'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
        'Accept' => '*/*',
        'Accept-Encoding' => 'gzip, deflate'
    ]
]);

我在 url 1 中使用 Accept-Encoding。如果我不使用 Accept-Encoding,它将无法工作。

  1. 网址:https ://www.gap.com/browse/product.do?pid=440775002&cid=5225&pcid=5225&vid=1&grid=pds_0_190_1&cpos=0&cexp=1321&cid=CategoryIDs%3D5225&cvar=9527&ctype=Listing&cpid=res19102915874#dppage-4-

代码:

$url = 'https://www.gap.com/browse/product.do?pid=440775002&cid=5225&pcid=5225&vid=1&grid=pds_0_190_1&cpos=0&cexp=1321&cid=CategoryIDs%3D5225&cvar=9527&ctype=Listing&cpid=res19102206328645959183874#pdp-page-content';

$request = $this->client->request('GET', $url, [
    'debug' => true,
    'headers' => [
        'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
        'Accept' => '*/*'
    ]
]);

我没有在 url 2 中使用 Accept-Encoding。如果我使用 Accept-Encoding,它将无法正常工作。

两种代码都可以正常工作,但我不知道如何决定何时放置 Accept-Encoding。

你不知道怎么做?

还是有更好的解决方案来下载网站内容?

标签: phpphp-curlguzzle6

解决方案


推荐阅读