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 相关文章推荐
WML,Apache,和 PHP 的介绍
Oct 09 PHP
php目录管理函数小结
Sep 10 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
php提示undefined index的几种解决方法
May 21 PHP
php数组去重的函数代码
Feb 03 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
PHP chr()函数讲解
Feb 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 VS ASP
2006/10/09 PHP
PHP文件上传实例详解!!!
2007/01/02 PHP
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
php下连接mssql2005的代码
2011/01/17 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
python添加模块搜索路径方法
2017/09/11 Python
《Python学习手册》学习总结
2018/01/17 Python
Django开发中复选框用法示例
2018/03/20 Python
Python中的元组介绍
2019/01/28 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
酒店拾金不昧表扬信
2014/01/18 职场文书
低碳生活倡议书
2014/04/14 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
2014年度党员自我评议
2014/09/13 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
售后服务质量承诺书
2015/04/29 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
教师远程培训心得体会
2016/01/09 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
Python办公自动化解决world文件批量转换
2021/09/15 Python
Go语言 详解net的tcp服务
2022/04/14 Golang