<?php
$ch = curl_init();
$urls = $_GET['url'];
if($urls == ''){
echo 'null';
exit;
}
curl_setopt($ch, CURLOPT_URL, $urls);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
$headers = array();
$headers[] = 'Authority: item.rakuten.co.jp';
$headers[] = 'Cache-Control: max-age=0';
$headers[] = 'Upgrade-Insecure-Requests: 1';
$headers[] = 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
$headers[] = 'Sec-Fetch-Site: none';
$headers[] = 'Sec-Fetch-Mode: navigate';
$headers[] = 'Sec-Fetch-User: ?1';
$headers[] = 'Sec-Fetch-Dest: document';
$headers[] = 'Accept-Language: zh-CN,zh;q=0.9';
$headers[] = '';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
//匹配信息数组
preg_match_all("/<script>window.__INITIAL_STATE__ = (.*?\"\}\})\;/s",$result,$shop_match);
$shop_json = json_decode($shop_match[1][0], true);
$item_info = $shop_json['item'];
$item_info['review'] = $shop_json['review']['item']['reviews'];
$item_info['item_info'] = $shop_json['purchase']['sku']['sku'];
echo json_encode($item_info);
?>
由于项目用到,比较简单的,直接页面有json信息,可以直接获取,并且打印出来,适合对接接口使用。