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中Session的概念
Oct 09 PHP
PHP无限分类的类
Jan 02 PHP
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
openflashchart 2.0 简单案例php版
May 21 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
PHP四种基本排序算法示例
Apr 09 PHP
php递归函数怎么用才有效
Feb 24 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
PHP常量define和const的区别详解
May 18 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
MySQL修改密码方法总结
2008/03/25 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
PHP的基本常识小结
2013/07/05 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
浅析Python中return和finally共同挖的坑
2017/08/18 Python
Python学生信息管理系统修改版
2018/03/13 Python
django缓存配置的几种方法详解
2018/07/16 Python
详解Python正则表达式re模块
2019/03/19 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
实习老师个人总结的自我评价
2013/09/28 职场文书
个性婚礼策划方案
2014/05/17 职场文书
学生党员公开承诺书
2014/05/28 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
2014年采购员工作总结
2014/11/18 职场文书
大学生党员个人总结
2015/02/13 职场文书
python入门之算法学习
2021/04/22 Python
Go并发4种方法简明讲解
2022/04/06 Golang