겨울방학 동안 집에 있으면서 심심해서 타오바오 관련 개발이 어떤지 보고 싶어서 타오바오 개발자 등록을 하다가 API를 조정하려고 해보니 복잡한 것들이 많았습니다. 일부는 요금이 너무 많이 청구되어 속아서 타오바오 데이터를 일부 캡쳐해서 나만의 API를 만들었습니다.
제품 인기 획득, 즉 수집가 수는 현재 Tmall이 아닌 Taobao 제품만 지원합니다. 인기 및 제품 이름 획득은 Taobao와 Tmall 모두에서 지원되지만 Taobao의 캐시 파일에서 캡처되기 때문에, 그래서. . . 약간의 문제가 있을 수 있지만 테스트하는 동안에는 아무런 문제도 발생하지 않았습니다.
사용 중 문제를 발견하시면 연락주시면 개선하도록 하겠습니다.
내 연락처:
동시에 구현된 제품 사진을 구하는 등 다른 일들도 해볼 예정인데 별로 쓸모가 없는 것 같아요. . . 그래서 다음판에 추가하겠습니다.
자, 더 이상 말도 안 되는 소리는 그만하고 소스 코드로 가보겠습니다
<code><span><span><?php</span><span>/** * Created by PhpStorm. * User: leif * Date: 16/1/26 * Time: 10:17 * email: leiflyy@outlook.com */</span><span>/** * 实现传入宝贝的id,返回宝贝的链接,支持淘宝 *<span> @param</span> $id 宝贝的id *<span> @return</span> string 返回的宝贝的链接 */</span><span><span>function</span><span>getTbLink</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=<span>"https://item.taobao.com/item.htm?spm=a1z10.4-c.w5003-12641268955.30.0lDnKZ&id="</span>.<span>$id</span>.<span>"&scene=taobao_shop"</span>; <span>return</span><span>$url</span>; } <span>/** * 实现传入宝贝的id,获取宝贝的商品名,支持淘宝和天猫 *<span> @param</span> $id 宝贝的id *<span> @return</span> mixed 宝贝的商品名 */</span><span><span>function</span><span>getNameById</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=<span>"http://hws.m.taobao.com/cache/wdetail/5.0/?id="</span>.<span>$id</span>; <span>$content</span>=file_get_contents(<span>$url</span>); <span>$content_ori</span>=strip_tags(<span>$content</span>); <span>$content_arr</span>=json_decode(<span>$content_ori</span>,<span>true</span>); <span>$detail</span>=json_decode(<span>$content_arr</span>[<span>'data'</span>][<span>'apiStack'</span>][<span>'0'</span>][<span>'value'</span>],<span>true</span>); <span>$success_sym</span>=<span>$detail</span>[<span>'ret'</span>][<span>'0'</span>];<span>//成功则返回"SUCCESS::调用成功";</span><span>if</span>(<span>$success_sym</span>==<span>"SUCCESS::调用成功"</span>){ <span>$name</span>=<span>$content_arr</span>[<span>'data'</span>][<span>'itemInfoModel'</span>][<span>'title'</span>]; <span>return</span><span>$name</span>; }<span>else</span>{ <span>return</span><span>"<script type='text/javascript'>alert('宝贝不存在!');</script>"</span>; } } <span>/** * 实现传入宝贝id,获取宝贝价格,支持淘宝和天猫 *<span> @param</span> $id 宝贝的id *<span> @return</span> mixed 返回的宝贝的价格或价格区间 */</span><span><span>function</span><span>getPriceById</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=<span>"http://hws.m.taobao.com/cache/wdetail/5.0/?id="</span>.<span>$id</span>; <span>$content</span>=file_get_contents(<span>$url</span>); <span>$content_ori</span>=strip_tags(<span>$content</span>); <span>$content_arr</span>=json_decode(<span>$content_ori</span>,<span>true</span>); <span>$pro_detail</span>=json_decode(<span>$content_arr</span>[<span>'data'</span>][<span>'apiStack'</span>][<span>'0'</span>][<span>'value'</span>],<span>true</span>); <span>$success_sym</span>=<span>$pro_detail</span>[<span>'ret'</span>][<span>'0'</span>];<span>//成功则返回"SUCCESS::调用成功";</span><span>if</span>(<span>$success_sym</span>==<span>"SUCCESS::调用成功"</span>){ <span>$pro_price</span>=<span>$pro_detail</span>[<span>'data'</span>][<span>'itemInfoModel'</span>][<span>'priceUnits'</span>][<span>'0'</span>][<span>'price'</span>]; <span>return</span><span>$pro_price</span>; }<span>else</span>{ <span>return</span><span>"<script type='text/javascript'>alert('宝贝不存在!');</script>"</span>; } } <span>/** * 实现传入宝贝id,获取宝贝的收藏人数(人气),支持淘宝 *<span> @param</span> $id 宝贝id *<span> @return</span> mixed 返回的宝贝的收藏人数(人气) */</span><span><span>function</span><span>getPopById</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=getTbLink(<span>$id</span>); <span>$urlinfo</span> = parse_url(<span>$url</span>); parse_str(<span>$urlinfo</span>[<span>'query'</span>], <span>$query</span>); <span>$id</span> = <span>$query</span>[<span>'id'</span>]; <span>$data</span> = file_get_contents(<span>$url</span>); <span>$start</span> = strpos(<span>$data</span>, <span>'counterApi'</span>); <span>$start</span> = strpos(<span>$data</span>, <span>": "</span>, <span>$start</span>); <span>$end</span> = strpos(<span>$data</span>, <span>"',"</span>, <span>$start</span>); <span>$api</span> = <span>'https:'</span> . substr(<span>$data</span>, <span>$start</span> + <span>3</span>, <span>$end</span> - <span>$start</span> - <span>3</span>) . <span>'&callback=jsonp107'</span>; <span>$response</span> = file_get_contents(<span>$api</span>); <span>$response</span> = substr(<span>$response</span>, <span>9</span>, -<span>2</span>); <span>$arr</span> = json_decode(<span>$response</span>, <span>true</span>); <span>$popularity</span>=<span>$arr</span>[<span>'ICCP_1_'</span>.<span>$id</span>]; <span>return</span><span>$popularity</span>; }</span></code>
위 내용은 관련 내용을 포함해 타오바오 제품의 가격과 인기를 파악하기 위한 PHP 소스코드를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.