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 相关文章推荐
php全局变量和类配合使用深刻理解
Jun 05 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
十幅图告诉你什么是PHP引用
Feb 22 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
php无限极分类实现方法分析
Jul 04 PHP
Smarty模板变量与调节器实例详解
Jul 20 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
php5 and xml示例
2006/11/22 PHP
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
PHP自定义多进制的方法
2016/11/03 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
Python中基本的日期时间处理的学习教程
2015/10/16 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
手机促销活动方案
2014/02/05 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
python 批量压缩图片的脚本
2021/06/02 Python
实战 快速定位MySQL的慢SQL
2022/03/22 MySQL