与Google同意重定向有关cURL问题

nle07wnf  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(168)

我在从Google(没有API)获取客户评论数据时遇到了一个cURL问题。之前我的cURL请求工作正常,但现在Google似乎将所有请求重定向到cookie同意页面。
下面你会发现我目前的代码:

$ch = curl_init('https://www.google.com/maps?cid=4493464801819550785');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);

print_r($result);

$result现在只打印“302已移动。文档已移动here”。
我也试过设置curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);,但也无济于事。
有没有人知道如何克服这个问题?我能以某种方式通过编程拒绝(或接受)Google的cookie吗?或者也许有更好的方法来处理这个问题?

3qpi33ja

3qpi33ja1#

您需要以下内容:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

上面的curl选项告诉curl跟随重定向,我不确定返回的内容是否对您试图获取的特定URL有用。通过添加上述选项,您将获得Google重定向到的最后一个页面的HTML源代码。但此页面包含脚本,当执行这些脚本时,将加载Map和其他内容,这些内容最终将显示在您的浏览器中。因此,如果你需要从JavaScript加载的内容中获取数据,那么你不会在返回的结果中找到它。相反,你应该考虑使用一个类似于selenium的PHP工具(你可以看看this post)。

相关问题