PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例


Posted in PHP onApril 14, 2016

说起来做这个功能还真是一时好奇。前段时间在做一个淘客网站的时候,想到是否能抓取到淘宝商品的买家秀呢?经过一番折腾发现,淘宝商品用户评价信息是通过Ajax来调取的,通过嗅探网址发现,评论数据的请求接口是:

https://rate.tmall.com/list_detail_rate.htm?itemId=524394294771&spuId=341564036&sellerId=100414600&order=3¤tPage=1&append=0&content=1&tagId=&posi=&picture=1&callback=jsonp2339

其实上面很多参数也很容易理解,itemId是商品的ID,currentPage是当前页,picture为1时显示有图的评价,既然是抓取买家秀,那么picture参数一定要为1了。

如果你直接去访问上面的接口时,会得到如下图所示的请求结果:

PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例

看到请求结果是jsonp格式我就蛋碎了,我不知道如何去解析,但是换种思路,直接用PHP的正则去解析也未尝不可嘛,通过尝试,已经正确的能够解析到评论内容和买家秀的图片内容,如图:

PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例

效果不错,代码实现了评论内容的抓取、买家秀图片的抓取,代码奉上:

<?php
$url = "https://rate.tmall.com/list_detail_rate.htm?itemId=524394294771&spuId=341564036&sellerId=100414600&order=3¤tPage=1&append=0&content=1&tagId=&posi=&picture=1&callback=jsonp2339";
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE);
$texts = curl_exec($ch2);
curl_close($ch2);
//echo $texts;
$pattern = '/"pics"(.+?)","reply"/is';
preg_match_all($pattern, $texts, $match);
for($i=0;$i<count($match[0]);$i++){
$pattern2 = '/"rateContent":"(.+?)."reply"/is';
preg_match($pattern2, $match[0][$i], $matchcomments_only);
echo "<p>".str_replace('","rateDate":"',' ',str_replace('","reply"','',str_replace('"rateContent":"','',$matchcomments_only[0])))."</p>";
$pattern3 = '/img.alicdn(.+?).jpg/is';
preg_match($pattern3, $match[0][$i], $matchpic_only);
echo '<img src="http://'.$matchpic_only[0].'" width=120>';
}
/*匹配一张图片
$pattern = '/"pics"(.+?)","position"/is';
preg_match_all($pattern, $texts, $matchpic);
for($i=0;$i<count($matchpic[0]);$i++){
$pattern3 = '/img.alicdn(.+?).jpg/is';
preg_match($pattern3, $matchpic[0][$i], $matchpic_only);
echo "<p>".$matchpic_only[0]."</p>";
}*/
/*匹配所有图片
$pattern = '/"pics"(.+?)","position"/is';
preg_match_all($pattern, $texts, $matchpic);
for($i=0;$i<count($matchpic[0]);$i++){
$pics_str=str_replace('"pics":["//','',str_replace('"],"picsSmall":"","position"','',$matchpic[0][$i]));
$arr = explode('","//',$pics_str);
echo "<p>";
foreach($arr as $newstr){
echo '<img src=http://'.$newstr.' width=100 >';
}
echo "</p>";
}*/
?>

下面给大家介绍PHP抓取淘宝搜索商品列表实例

<?php
header("Content-Type:text/html;charset=gbk");
include "Snoopy.class.php"; 
$snoopy = new Snoopy; 
$snoopy->fetch("http://s.taobao.com/search?spm=a230r.1.8.7.2NN4M7&q=%C7%EF%B6%AC%B4%F3%D2%C2&source=tbsy&refpid=420461_1006&discount_index=1&newpre=null&p4p_str=fp_midtop%3D0%26firstpage_pushleft%3D0&style=list&s=0#J_Filter"); 
$html=$snoopy->results; 
//说明:抓取网页使用的是 Snoopyphp 框架 也可以直接使用file_get_contents函数获取即可,
//var_dump($html);
preg_match_all('/<h3 class="summary">.*</a>/',$html,$result);
//preg_match_all('/<divsid="([a-z0-9_]+)">([^<>]+)</div>/',$html,$result);
var_dump($result);
echo "<br>";
/*
//循环读取数组
foreach($result as $key1){
foreach($key1 as $key => $val){
echo $key.$val;
}
}
*/

以上所述是小编给大家介绍的PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例,希望对大家有所帮助!

PHP 相关文章推荐
10条PHP编程习惯助你找工作
Sep 29 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
PHP和MYSQL实现分页导航思路详解
Apr 11 PHP
php头像上传预览实例代码
May 02 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
php解析非标准json、非规范json的方式实例
May 10 PHP
php上传大文件设置方法
Apr 14 #PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 #PHP
java模拟PHP的pack和unpack类
Apr 13 #PHP
php远程下载类分享
Apr 13 #PHP
Thinkphp和onethink实现微信支付插件
Apr 13 #PHP
PHP MSSQL 分页实例
Apr 13 #PHP
php构造方法中析构方法在继承中的表现
Apr 12 #PHP
You might like
php简单防盗链实现方法
2015/07/29 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
Javascript 中的 &amp;&amp; 和 || 使用小结
2010/04/25 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
Python pass详细介绍及实例代码
2016/11/24 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
python numpy格式化打印的实例
2018/05/14 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
办公室助理岗位职责
2013/12/25 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
统计岗位职责
2014/02/21 职场文书
财政局个人年终总结
2015/03/03 职场文书
法律服务所工作总结
2015/08/10 职场文书
浅析Django接口版本控制
2021/06/26 Python
frg-100简单操作(设置)说明
2022/04/05 无线电
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript