失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php 解析京东 json 京东商品评论接口数据抓取

php 解析京东 json 京东商品评论接口数据抓取

时间:2022-04-06 21:19:17

相关推荐

php 解析京东 json 京东商品评论接口数据抓取

抓取过程中,遇到两个小问题:

1、请求头中没放Referer 和 User-Agent, 导致接口内容未返回

2、php 的 json_decode 解析失败,返回了NULL,使用json_last_error(); 检查错误格式得出结果是 “5”, 经检查返回的接口数据内容的编码格式居然是EUC-CN 导致json_decode失败

json_last_error错误msg对照表:

0 = JSON_ERROR_NONE

1 = JSON_ERROR_DEPTH

2 = JSON_ERROR_STATE_MISMATCH

3 = JSON_ERROR_CTRL_CHAR

4 = JSON_ERROR_SYNTAX

5 = JSON_ERROR_UTF8

上采集代码:

ini_set("display_errors", "On");//打开错误提示

ini_set("error_reporting",E_ALL);//显示所有错误

header("Content-Type: text/html; charset=utf-8");

$header = [];

$header[] = 'Referer: /59080455549.html';

$header[] = 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36';

$url = '/comment/productPageComments.action?callback=fetchJSON_comment98vv89&productId=59080455549&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

$output = curl_exec($ch);

curl_close($ch);

$output = str_replace('fetchJSON_comment98vv89(', '', $output);

$output = str_replace('}]});', '}]}', $output);

$encode = mb_detect_encoding($output, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));

if($encode == 'UTF-8'){

echo $encode;

}else{

$output = mb_convert_encoding($output, 'UTF-8', $encode);

}

$result = json_decode($output, true);

// echo json_last_error();

print_r($result);

exit;

本文仅供curl网络请求和PHP函数运用的学习使用,请勿对他人服务器发恶意请求,危害网络安全

如果觉得《php 解析京东 json 京东商品评论接口数据抓取》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。