如何使用PHP/cURL获取调用JSON文件的网站的内容

如何使用PHP/cURL获取调用JSON文件的网站的内容,php,ajax,json,curl,Php,Ajax,Json,Curl,有一个超市网站,我需要得到产品名称和价格数据列表。 网址为: 然而,我无法成功地获得这些内容。每次尝试都以无效结果结束。我不熟悉cURL,但建议我克服这个问题。如我所见,产品列表是用Ajax-JSON调用的,因此,我应该使用PHP跟踪查看JSON文件及其内容的请求。。。但是怎么做呢 先谢谢你 我尝试的代码: <?php $url="https://www.sanalmarket.com.tr/kweb/sclist/30011-tum-meyveler"; $ch = curl_init

有一个超市网站,我需要得到产品名称和价格数据列表。 网址为:

然而,我无法成功地获得这些内容。每次尝试都以无效结果结束。我不熟悉cURL,但建议我克服这个问题。如我所见,产品列表是用Ajax-JSON调用的,因此,我应该使用PHP跟踪查看JSON文件及其内容的请求。。。但是怎么做呢

先谢谢你

我尝试的代码:

<?php
$url="https://www.sanalmarket.com.tr/kweb/sclist/30011-tum-meyveler";

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);
var_dump(json_decode($result, true));

?>

您的curl请求确实有效,您将在
$result
变量中得到html响应。问题在于,您将html响应字符串视为有效的JSON字符串

而不是

var_dump(json_decode($result, true));
试一试


此处的
$result
不是有效的JSON字符串。它是一个包含服务器响应的html的字符串。因此,如果不使用html解析器,就无法将其直接解析为数组或对象。

@mithunsatheesh添加了它。为什么不直接调用json请求呢?如果它是动态的,您需要将网站下载到string(
file\u get\u contents
)中,并使用
DomDocument
Regex
提取url。试试看,如果你有什么问题可以问。对我来说,这是当前状态下的一种扩展。我研究了页面的结构和加载产品的Ajax/JSON请求,从我所知道的情况来看,我认为您无法轻松获得所需的信息。首先,您在CURL中使用的URL用于网页本身,而不是用于返回产品信息的URL。其次,产品信息URL仅在发送有效cookie时返回一个值,因此您需要一种方法从原始URL获取cookie,存储它,然后使用它来抓取AJAX URL。“我希望这能有所帮助。”哈格宾德说,多亏了你,我至少有了一个路线图。从URL获取cookie列表对我很有帮助,不是吗?不是我的投票。我没有足够的代表投票给某人。你说得对。现在我可以看到一些东西,但它仍然不是我想要的东西。我的错。@DorukhanArslan:响应是html,您正在将其传递给json解码。所以json decode需要有效的json字符串,而您只能提供一个。实际上,我不知道如何从源代码中找到特定的json字符串并传递它。
var_dump($result);