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 相关文章推荐
第八节--访问方式
Nov 16 PHP
PHP 中dirname(_file_)讲解
Mar 18 PHP
PHP 字符串分割和比较
Oct 06 PHP
CI框架学习笔记(二) -入口文件index.php
Oct 27 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
PHP sdk实现在线打包代码示例
Dec 09 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 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
Laravel 5 学习笔记
2015/03/06 PHP
PHP读取Excel类文件
2017/05/15 PHP
自己开发Dojo的建议框架
2008/09/24 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python列表的增删改查实例代码
2018/01/30 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
python实现小球弹跳效果
2019/05/10 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
python如何进入交互模式
2020/07/06 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
大学生个人求职信范文
2013/09/21 职场文书
财务会计专业毕业生自荐信
2013/10/19 职场文书
人力资源专业推荐信
2013/11/29 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
平安校园建设方案
2014/05/02 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python