如果不想通过淘宝开放平台API获取数据,那么另外一个很好的办法就是采集了。一般来说,采集一个网页上的内容,只需要用CURL获取源代码,然后用正则表达式取出需要的内容就可以,不过如果这样载入一个淘宝的页面,会

如 果不想通过淘宝开放平台API获取数据,那么另外一个很好的办法就是采集了。一般来说,采集一个网页上的内容,只需要用CURL获取源代码,然后用正则表 达式取出需要的内容就可以,不过如果这样载入一个淘宝的页面,会发现根本没有评论和成交数据,直接查看源代码可以看到评论的是空的。分析页面后发现,淘宝 的评论并不是直接输出在页面中,而是在点击评论和成交的时候,才会跨域获取数据,并用脚本解析显示。

这样的处理方式使得 CURL页面的方式不好使用了,但是实际上获得数据反而更容易:使用CURL还必须考虑装修模板的问题,通用性并不好,而跨域获取的数据多数情况下是一个 标准的格式,通过抓取数据包最后发现淘宝的评论数据是从http://rate.taobao.com/feedRateList.htm?使用URL直 接GET方式过来的,并且是标准的JSON格式。

数据地址:

  1. http://rate.taobao.com/feedRateList.htm?callback=jsonp_reviews_list&userNumId=【掌柜的账号数字ID】&auctionNumId=【商品ID】&currentPageNum=【评论分页页码】
复制

其他还有些参数可以不用。【掌柜的账号数字ID】抓包时可获取,商品ID在宝贝页面链接中的id值就是。

第 二步:解析数值。因为淘宝的页面编码是GBK的,而PHP在处理GBK编码的JSON文件时,对其中的中文处理是有问题的,会替换成空值,所以最后 JSON数据decode出来的是一个NULL,解决办法是将GBK编码转换为UTF-8。如果你的网站是UTF-8的,那么把从淘宝抓来的JSON直接 转成UTF-8然后decode就可用了,如果是GBK的,则转好后再转回GBK就可以。下面以http://item.taobao.com /item.htm?id=20972699241为例,UTF-8页面的处理方法:

  1. $ch = curl_init();//初始化,创建句柄
  2. curl_setopt($ch, CURLOPT_URL, "http://rate.taobao.com/feedRateList.htm?callback=jsonp_reviews_list&userNumId=1048567622&auctionNumId=20972699241&currentPageNum=1");//设置细节参数
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. curl_setopt($ch, CURLOPT_HEADER, 0);
  5. $str = curl_exec($ch);//获取内容
  6. $str = mb_convert_encoding($str,'UTF-8','GBK');//转换编码
  7. $str = str_replace('jsonp_reviews_list(','',$str);//去掉多余的字符串
  8. $str = str_replace(')','',$str);
  9. $data = json_decode($str,TRUE);//得到数据了,第二个参数是转化为数组
  10. print_r($data)//输出页面查看
复制

注意几个细节:
1、从淘宝抓来的JSON是GBK编码的;
2、PHP的json_decode()函数处理GBK编码的中文数据是有问题的,需要转换UTF-8后处理;
3、iconv()和mb_convert_encoding()函数也各有优劣和BUG,注意处理。
4、curl函数的使用;
5、如果要采集不止一页评论,总的页面数可以在返回值中的maxpage获取。

购买记录数据的获取方法大同小异,天猫的评论获取地址也有所不同,不过方法都是一样的。

利用PHP从淘宝采集评论和成交数据的更多相关文章

  1. Python爬虫 获得淘宝商品评论

    自从写了第一个sina爬虫,便一发不可收拾.进入淘宝评论爬虫正题: 在做这个的时候,也没有深思到底爬取商品评论有什么用,后来,爬下来了数据.觉得这些数据可以用于帮助分析商品的评论,从而为用户选择商品提 ...

  2. 淘宝上的大智慧L2数据,月卡最便宜是8元钱,这个也可以获取BBD、DDX等数据!

    Want:从顶牛股网上下载DDX数据. 1.下载历史DDE数据:获取最近120个交易日的DDE数据 #define SFURL_DNG_SINGLEL"http://www.dingniug ...

  3. Python天猫淘宝评论爬虫

    说明 由于Github 打包的exe某些文件上传被.gitignore了,所以不提供windows二进制包 https://github.com/hunterhug/taobaocomment 一个抓 ...

  4. 淘宝IP地址库采集器c#代码

    这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下. 最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息.网上的Ip纯真数据库,下载下来一看 ...

  5. 淘宝IP地址库采集器c#

    个人原创.欢迎转载.转载请注明出处.http://www.cnblogs.com/zetee/articles/3482085.html 采集器概貌,如下: 最近做一个项目,功能类似于CNZZ站长统计 ...

  6. [TB-Technology] 淘宝在数据处理领域的项目及开源产品介绍

    淘宝在数据存储和处理领域在国内互联网公司中一直保持比较靠前的位置,而且由于电子商务领域独特的应用场景,淘宝在数据实时性和大规模计算及挖掘方面一直在国内保持着领先,因此积累了很多的实践的经验和产品. T ...

  7. 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)

    转自:http://blog.csdn.net/v_july_v/article/details/6704077 从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到 ...

  8. 从Hadoop骨架MapReduce在海量数据处理模式(包括淘宝技术架构)

    从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,认为它们非常是神奇.而神奇的东西常能勾 ...

  9. selenium实现淘宝的商品爬取

    一.问题 本次利用selenium自动化测试,完成对淘宝的爬取,这样可以避免一些反爬的措施,也是一种爬虫常用的手段.本次实战的难点: 1.如何利用selenium绕过淘宝的登录界面 2.获取淘宝的页面 ...

随机推荐

  1. POJ2195 Going Home

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22091   Accepted: 11156 Description On ...

  2. Bzoj1711 [Usaco2007 Open]Dining吃饭

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 872  Solved: 459 Description 农夫JOHN为牛们做了很好的食品,但是牛吃饭很挑食 ...

  3. bzoj1124[POI2008]枪战maf

    这代码快写死我了.....死人最多随便推推结论.死人最少,每个环可以单独考虑,每个环上挂着的每棵树也可以分别考虑.tarjan找出所有环,对环上每个点,求出选它和不选它时以它为根的树的最大独立集(就是 ...

  4. DedeCMS顽固木马后门专杀工具V2.0实现方式研究

    catalog . 安装及使用方式 . 检查DEDECMS是否为最新版本 . 检查默认安装(install)目录是否存在 . 检查默认后台目录(dede)是否存在 . 检查DedeCMS会员中心是否关 ...

  5. dedeCMS /data/mysql_error_trace.php DB error raised PHP Code Injection Via /include/dedesql.class.php Log FIle Without Access Validation

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 dedecms采用面向对象封装的方式实现了功能操作的模块集中化,例如对于数据库管理 ...

  6. sed命令给文本文件的每行的行首或者行尾添加文字

    在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“TAIL”,命令如下: sed 's/ ...

  7. JSP+JavaBean+Servlet实现各类列表分页功能

    需求: 每页列表下都有一个分页的功能,显示总数量.当前页/总页数.首页.上一页.下一页.最后一页.GO到第几页 效果动态图: 实现思路: 因为每个列表页都需要,在每个出列表页数据的servlet中都要 ...

  8. js实现身份证号码验证

    /*根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数 ...

  9. centos搭建https协议的tomcat和apache服务器以及nginx服务器,mysql php

    Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web ...

  10. centos7 + VMware Workstation Pro

    centos7 + VMware Workstation Pro安装 centos 7 镜像文件 下载地址https://www.centos.org/download/ 笔者是使用的DVD ISO, ...