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入门速成教程
Mar 19 PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 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配合jquery实现增删操作具体实例
2013/12/12 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php中的观察者模式简单实例
2015/01/20 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
python实现定时同步本机与北京时间的方法
2015/03/24 Python
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
Python文件的读写和异常代码示例
2017/10/31 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
Python Selenium截图功能实现代码
2020/04/26 Python
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
旅游文化节策划方案
2014/06/06 职场文书
优秀教师推荐材料
2014/12/16 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
学生检讨书范文
2019/06/24 职场文书
再谈python_tkinter弹出对话框创建
2022/03/20 Python
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript