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中if和or运行效率对比
Dec 12 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
php插入mysql数据返回id的方法
May 31 PHP
PHP实现微信退款功能
Oct 02 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
PHP数组基本用法与知识点总结
Jun 02 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读取html并截取字符串的简单代码
2009/11/30 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
基于Bootstrap表单验证功能
2017/11/17 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
python处理大数字的方法
2015/05/27 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
python去除文件中重复的行实例
2018/06/29 Python
Python 字符串与数字输出方法
2018/07/16 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
Python按钮的响应事件详解
2019/03/04 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
大学生先进事迹材料
2014/02/16 职场文书
买房协议书
2014/04/11 职场文书
自荐信模板大全
2015/03/27 职场文书
聘任书范文大全
2015/09/21 职场文书
HTML基本元素标签介绍
2022/02/28 HTML / CSS
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫