电商平台商品数据爬虫分析(test阶段可对接测试)

1.简单说明

京东,淘宝,天猫,,淘特,拼多多,阿里巴巴,1688,抖音,苏宁,亚马逊中国 ,lazada,速卖通等全球50多个知名平台抓取数据,存储到database 并进行分析

2.抓取的DIC

 the_basic_info = {
                    'search_keyword': self.keyword,  "使用的keyword"
                    'last_crawling_timestamp': datetime.now(),    "当前抓取时间"
                    'platform': 'JD',   "抓取平台"
                    'product_name': product_name,    "产品名称"
                    'seller_name': seller_name,   "商家名称"
                    'sku_id': _data_pid,    "产品Id"
                    'default_price': float(final_price),   "最终价格"
                    'final_price': 0,
                    'item_url': _http,  "商品网页地址"
                    'comments_ave_score': float(score_avg),    "商品评分"
                    'comments_count': comment_count,    "商品评论数量"
                    'images': img,    "商品图片地址"
                    'current_stock': location_list,   "商品存储地址"
                    'search_rank': rank,    "在当前搜索索引下的排名"
                    'search_order': order,   "当前索引(按销量,价格,热度等)"
                    'seller_url': seller_url,   "商家网页地址"
                    'comments_list': comment_list    "具体评论,支持抓取100条评论"
                }

一个例子:

Product_name 戴尔灵越游匣15PR-6748B 15.6英寸游戏笔记本电脑(i7-7700HQ 8G 128GSSD+1T GTX1050 4G独显 IPS)黑
last_crawling_timestamp 2017-12-28 20:20:09.684290
seller_name 戴尔京东自营旗舰店
sku_id 4824733
default_price 6599.0
item_url 【戴尔灵越游匣15PR-6748B】戴尔DELL灵越游匣15.6英寸游戏笔记本电脑(i7-7700HQ 8G 128GSSD+1T GTX1050 4G独显 IPS 散热快)黑【行情 报价 价格 评测】-京东
comments_count 72000
comments_ave_score 5.0
images ['http://img13.360buyimg.com/n7/jfs/t12472/179/736139380/319777/f266f597/5a128bf6N079a87ba.jpg']
search_rank 1
seller_url 戴尔京东自营官方旗舰店 - 京东
comments_list [{'content_score': 5, 'content_time': '2017-12-05 18:54:31', 'content_title': None, 'content': '用了将近一个月了,说说体验如何。11月9号凌晨买的,当天下午就到了。包装精简,京东袋子里就是戴尔的盒子。电脑颜值高,A面类肤质,后面散热口非常帅。电脑不轻薄,因为做工的好的原因有点厚重,不过这样才有点游戏本的意思。宿舍里还有台暗影精灵2pro和R720,相比2pro键盘敲打起来挺有弹性,但是背光没有其他两台亮。个人感觉键盘触感最好的还是R720,而且按键大一些。说说R720和2PRO跟游匣无法比拟的,那就是低音炮,音质非常好,三个室友都夸赞羡慕游匣的音质。所以我的电脑也成了我们宿舍的音响。。。屏幕呢是ips45色域的。对于以前一直用的是TN屏的我感觉这电脑屏幕相当好了。再说说性能,其实性能是最不用说的,配置都摆在那里,鲁大师跑分将近一万八,1050ti能够应付大多数大型单机游戏了,吃鸡中画质可以流畅运行。运行大型游戏时风扇会全力运作,声音稍微有点响(散热好和噪音小不可兼得),我更注重散热所以风扇声大点无所谓,听着还挺带劲的。固态(不是nvme协议)和机械硬盘都比较差,开机十秒左右。总结下吧。优点:1.颜值高2.散热好3.做工精良4.配置低音炮缺点:1.低端ips屏2.略厚重3.硬盘差'}]

3.测试?

if __name__ == "__main__":
    j = JDMonitoringEngine()
    j.set_searching_url(_keyword="dell", _page_limit=1, _order=["sales"])
    url_list = j.url_list
    for _index, url_dict in enumerate(url_list):
        logger.info("Sending {0}/{1} url dict to basic info extraction".format(
            (_index + 1), len(url_list)))
        results = list(map(lambda x: j.get_basic_info(x), url_dict))

将jd_monitoring_engine main 方法里面的_keyword,_page_limit,_order
改成你想测试的例子。三个参数分别是关键字,搜索页数和搜索索引。

4.接口封装代码

1.请求方式: HTTPS   GET   POST

2.公共参数:

名称 类型 必须 描述
key String 调用key(必须以GET方式拼接在URL中)
secret String 调用密钥 (复制vxin:Taobaoapi2014 )
api_name String API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]
cache String [yes,no]默认yes,将调用缓存的数据,速度比较快
result_type String [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读
lang String [cn,en,ru]翻译语言,默认cn简体中文
version String API版本

3.请求参数:

请求参数:q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&seller_info=no&nick=&seller_info=&nick=&ppath=&imgid=&filter=

参数说明:q:搜索关键字,支持url
cat:分类ID
start_price:开始价格
end_price:结束价格
sort:排序[bid,_bid,_sale,_review,_new]
  (bid:总价,sale:销量,review评论数,new新品,加_前缀为从大到小排序)<
page: 

4. 请求代码示例,支持高并发请求(CURL、PHP 、PHPsdk 、Java 、C# 、Python...) 

# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 请求示例 url 默认请求参数已经做URL编码
url = "https://api-vxin.Taobaoapi2014.cn/jd/item_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&seller_info=no&nick=&seller_info=&nick=&ppath=&imgid=&filter="
headers = {
    "Accept-Encoding": "gzip",
    "Connection": "close"
}
if __name__ == "__main__":
    r = requests.get(url, headers=headers)
    json_obj = r.json()
    print(json_obj)

5.响应示例因文章字符限制,暂不展示。

猜你喜欢

转载自blog.csdn.net/tbprice/article/details/130217449