为什么想起来做这个功能?是因为前段时间在做一个淘客网站的时候,想到是否能抓取到淘宝商品的买家秀呢?经过一番折腾发现,淘宝商品用户评价信息是通过Ajax来调取的,通过嗅探网址发现,评论数据的请求接口是:

https://rate.tmall.com/list_detail_rate.htm?itemId=524394294771&spuId=341564036&sellerId=100414600&order=3&currentPage=1&append=0&content=1&tagId=&posi=&picture=1&callback=jsonp2339

其实上面很多参数也很容易理解,itemId是商品的ID,currentPage是当前页,picture为1时显示有图的评价,既然是抓取买家秀,那么picture参数一定要为1了。

如果你直接去访问上面的接口时,会得到如下图所示的请求结果:

看到请求结果是jsonp格式我就蛋碎了,我不知道如何去解析,但是换种思路,直接用PHP的正则去解析也未尝不可嘛,通过尝试,已经正确的能够解析到评论内容和买家秀的图片内容,如图:

效果不错,代码实现了评论内容的抓取、买家秀图片的抓取,代码奉上:

<?php
$url = "https://rate.tmall.com/list_detail_rate.htm?itemId=524394294771&spuId=341564036&sellerId=100414600&order=3&currentPage=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>";
}*/
?>

有什么解析jsonp格式的好方法呢?求大神~~~

转载于:https://www.cnblogs.com/codeit/p/5387185.html

用PHP抓取淘宝商品的用户晒单评论+图片实例相关推荐

  1. 采集淘宝API数据,抓取淘宝商品资料无需申请appkey

    为了进行淘宝的API开发,首先我们需要做下面几件事情. 1)开发者注册一个账号 2)然后为每个淘宝应用注册一个应用程序键(App Key) . 3)下载淘宝API的SDK并掌握基本的API基础知识和调 ...

  2. 京东上货助手批量抓取淘宝商品步骤

    京东上传商品的不是很复杂,不过如果想要批量抓取其他平台商品到京东,京东商家就需要时间和精力来批量抓取商品上传了.一般在京东开店的商家,在淘宝.阿里等平台都会有店铺的,这个是电商商家的常态,很多商家都会 ...

  3. 京东上货助手怎么批量抓取淘宝商品?

    京东开店的商家,是如何把其他平台的商品一键复制到京东的呢?京东是个什么样的平台呢?相信很多商家都知道吧,京东有自己的物流,是中国的综合网络零售商,是中国电子商务领域受消费者欢迎和具有影响力的电子商务网 ...

  4. 【爬虫】selenium+webdrive抓取淘宝商品评价

    [爬虫]selenium+webdrive抓取淘宝商品评价 爬虫小白入门 (声明:本人只是处于突如其来的兴趣学习一点点,水平实在不高,但在这个过程中也或多或少地解决了一些问题,所以对同为小白的朋友们或 ...

  5. python获取登录按钮_Python:Selenium模拟Chrome浏览器抓取淘宝商品信息

    对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...

  6. 抓取淘宝商品信息并制作商品信息比价表(以口红为例)

    快速抓取淘宝上口红信息 import requests import re import os def getHtmlText(url): try: r=requests.get(url,timeou ...

  7. 3.使用Selenium模拟浏览器抓取淘宝商品美食信息

    # 使用selenium+phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏览器翻页,并 ...

  8. Python爬虫淘宝基于selenium抓取淘宝商品数据2021年测试过滑动验证

    配置一下"可能需要修改的参数",就可以食用底部代码了,ps:可能已失效 本文章代码功能 准备工作 Python用到的库和准备工作 可能需要修改的参数 在CMD中打开一个Chrome ...

  9. python淘宝爬虫基于requests抓取淘宝商品数据_python淘宝爬虫基于requests抓取淘宝商品数据...

    在学校蹭过python的课,觉得python异常强大,趁寒假有时间,瞎搞一下,希望能和大伙一起探讨学习.废话不多说了,直接正题. requests 是Python的http库,可以完成绝大部分与htt ...

  10. python淘宝爬虫基于requests抓取淘宝商品数据

    在学校蹭过python的课,觉得python异常强大,趁寒假有时间,瞎搞一下,希望能和大伙一起探讨学习.废话不多说了,直接正题. requests 是Python的http库,可以完成绝大部分与htt ...

最新文章

  1. java.security.InvalidKeyException: Illegal key size异常解决
  2. 做为 iOS 开发者 现在对未来迷茫怎么办?
  3. .Net线程问题解答
  4. HDU - 7029 Median 思维
  5. matla工具箱 SerialLink 的一些最近发现的功能
  6. 6.GD32F103C8T6 定时器的基本使用
  7. 添加内核驱动模块(2)(mydriver.c+ Konfig+Makefile )
  8. ASEMI低压差线性稳压器AMS1117详解
  9. Fuji-ImageJ分割中央凹无血管区
  10. 机电传动控制第四周作业
  11. 不小心删除的文件怎么找回,文件误删除恢复的方法
  12. 运用nginx和阿里云解析配置二级域名 设置不同端口号
  13. Win10系统电脑连接打印机的操作方法教学
  14. 【PMBOK重点知识】工作绩效数据、工作绩效信息、工作绩效报告之间的区别和关系
  15. 观看加勒比海盗惊涛怪浪在线高清串流最快
  16. linux执行sudo报错【/etc/sudo.conf is owned by uid 994, should be 0】
  17. 会议录音转文字(PC版)
  18. win10系统pp-yolov2实操训练自己的数据集
  19. 亮紫色晶体meso四(4-氨基苯基)卟啉TAPP/TAPPPt/TAPPCo/TAPPCd/TAPPZn/TAPPPd/TAPPCu/TAPPNi/TAPPFe/TAPPMn金属配合物-齐岳供应
  20. 汤臣倍健,行业第一的下坡路

热门文章

  1. 素数c语言,C语言素数怎么表示
  2. 非常详细的Maven安装与配置教程
  3. 基于OpenCPU方案的BC26 NB模组开发总结
  4. nb模块不能接收公网消息_NB-IoT 对接调测问题汇总,你想知道的都在这儿 | 收藏吧...
  5. 【无标题】java班级管理系统
  6. 纪念一下挖到CSDN官网漏洞
  7. 基于mysql学生签到_Java swing mysql学生签到考勤系统附带完整源码及开发视频
  8. [SQL面试经验] 经典sql面试题及答案第1期
  9. PowerShell: 如何使用powershell处理Excel
  10. 《初识Scratch》教学设计