Php 如何解决在crul中获取sedoparking.com/\Gogolebot html和在laravel 7中获取guzzle请求的问题

Php 如何解决在crul中获取sedoparking.com/\Gogolebot html和在laravel 7中获取guzzle请求的问题,php,laravel,curl,guzzle,laravel-7,Php,Laravel,Curl,Guzzle,Laravel 7,在Laravel7中,在我的一个作业中,我发送了一个http请求,其中95%得到了html响应 请求 $url = "some url"; /** * Request with Guzzle and xml */ $response = Http::retry(3, 1000)->timeout(60)->withHeaders([ 'User-Agent' => 'curl/7.65.3', 'Accept' => 'text/h

在Laravel7中,在我的一个作业中,我发送了一个http请求,其中95%得到了html响应

请求

$url = "some url";
/**
 * Request with Guzzle and xml
 */
$response = Http::retry(3, 1000)->timeout(60)->withHeaders([
    'User-Agent' => 'curl/7.65.3',
    'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Encoding' => 'gzip, deflate, br',
])->withOptions([
    'referer' => true,
    'verify' => false
])->get($url);
if($response->successful()){
    try {
        self::$response = $response->body();
        return true;
    } catch (\Throwable $th) {
        Log::error(
            'status:' . $response->status() .'\n' .
            'server Error:' . $response->serverError() .'\n' .
            'client Error:' . $response->clientError() .'\n' .
            'body:' . $response->body()
        );
        return false;
    }
    return true;
}else{
    try {
        Log::error($url);
        Log::error(
            'status:' . $response->status() .'\n' .
            'server Error:' . $response->serverError() .'\n' .
            'client Error:' . $response->clientError() .'\n' .
            'body:' . $response->body()
        );
    } catch (\Throwable $th) {
        Log::error("couldn't even log the error of guzzle request");
        Log::error($th);
    }
    return false;
}
响应


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style type="text/css">
        html, body, #partner, iframe {
            height: 100%;
            width: 100%;
            margin: 0;
            padding: 0;
            border: 0;
            outline: 0;
            font-size: 100%;
            vertical-align: baseline;
            background: transparent;
        }

        body {
            overflow: hidden;
        }
    </style>
    <meta content="NOW" name="expires">
    <meta content="index, follow, all" name="GOOGLEBOT">
    <meta content="index, follow, all" name="robots">
    <!-- Following Meta-Tag fixes scaling-issues on mobile devices -->
    <meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0;
            user-scalable=0;" name="viewport">
</head>
<body>

<div id="partner"></div>
<script type="text/javascript">
    function getParam() {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == 'domain') {
                return pair[1];
            }
        }
        return  window.location.host;
    }
    ;

    document.write(
            '<script type="text/javascript" language="JavaScript"'
                    + 'src="//sedoparking.com/frmpark/'
                    + getParam() + '/'
                    + 'sedopark'
                    + '/park.js">'
                    + '<\/script>'
    );
</script>
</body>
</html>
额外信息 此作业每30分钟定期发送(同时发送20个作业)


根据日志,它表明http请求已成功返回Response。但是当我记录响应时,html就是我得到的。我应该获取供应商发送给我的内容的XML。

如果失败,您会得到什么?日志文件是否显示任何信息?@NigelRen根据日志,它表明http请求已成功返回响应。但是当我记录响应时,html就是我得到的。我应该得到供应商寄给我的东西的XML。
if ($options['verify'] === false) {
    unset($conf[CURLOPT_CAINFO]);
    $conf[CURLOPT_SSL_VERIFYHOST] = 0;
    $conf[CURLOPT_SSL_VERIFYPEER] = false;
} else {
    // $conf[CURLOPT_SSL_VERIFYHOST] = 2;
    // $conf[CURLOPT_SSL_VERIFYPEER] = true;
    $conf[CURLOPT_SSL_VERIFYHOST] = 0;
    $conf[CURLOPT_SSL_VERIFYPEER] = false;