某电商商品属性获取分析

为完成一个小型爬虫项目,在并未使用该平台提供的API情况下,细致分析了国内某著名电商网站商品属性的获取思路和方法,兹此记录分享,学习交流。

静态页面部分

为了获取静态页面部分的内容,需要使用firefox的开发者功能禁用javascript,如图
firefox设置
勾选"Disable JavaScript"。刷新页面后可见。通过静态页面可获取标题,商品ID,分类号,商品URL,图片url等内容。可直接使用正则表达式或xpath等工具分析获得,这里不再赘述。

动态内容部分

该网站大部分商品属性都是通过ajax动态获取的。还是通过浏览器来分析。取消勾选"Disable JavaScript"后,使用"Network"工具可对服务器响应的包进行抓包和分类。为避免反复重新加载页面时缓存的影响,勾选"Disable Cache"选项。先打开"Network"界面,然后刷新页面,可获得加载过程的抓包内容。ajax请求返回的数据为json或js类型。例如:
某json数据
url为

http://p.3.cn/prices/get?callback=cnp&type=1&area=1_72_4137&pdtk=&pduid=1516989398&pdpin=&pdbp=0&skuid=J_1743187

可在network工具箱内查看其response内容为
图片描述
对照页面内容后发现其中p字段正是商品价格数据!
通过直接打开链接得到json串为

cnp([{"id":"J_1743187","p":"499.00","m":"549.00"}]);

此response中带有回调函数名"cnp",观察在url中也有一个相同字段。遂尝试在url中去掉该字段,重新请求后

http://p.3.cn/prices/get?type=1&area=1_72_4137&pduid=1516989398&pdbp=0&skuid=J_1743187

获得json:

[{"id":"J_1743187","p":"499.00","m":"549.00"}]

继续尝试删除请求中的get参数,最终发现可用

http://p.3.cn/prices/mgets?skuids=J_1743187

正常获取到相同的数据。
python解析代码:

import urllib2
import json

p=urllib2.urlopen('http://p.3.cn/prices/get?type=1&area=1_72_4137&pduid=1516989398&pdbp=0&skuid=J_1743187').read()
p_json=json.loads(p)
price=p_json['p']

获取到价格数据,方便了自动化生成。其余不能通过静态内容获取的属性均可类比分析尝试获得。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Hive的某电商消费用户行为数据分析可以分为以下几个步骤: 1. 数据采集:通过网络爬虫等方式获取电商网站的用户行为数据,并将其存储在HDFS上。 2. 数据清洗:对采集到的原始数据进行清洗,去除无用数据,处理缺失值和异常值等。 3. 数据预处理:对清洗后的数据进行预处理,包括数据转换、数据合并、数据划分等。 4. 数据存储:将预处理后的数据存储在Hive中,以便后续分析使用。 5. 数据分析:通过Hive SQL语句进行数据分析,包括用户行为分析、用户画像分析商品分析、销售分析等。 下面是一份可能的Hive SQL源码示例,用于实现用户行为分析: ```sql --创建数据表 CREATE TABLE user_behavior( user_id STRING, item_id STRING, category_id STRING, behavior_type INT, date STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE; --加载数据到表中 LOAD DATA INPATH '/data/user_behavior.txt' OVERWRITE INTO TABLE user_behavior; --查询用户行为数据 SELECT behavior_type, count(*) as total FROM user_behavior GROUP BY behavior_type; --查询用户购买商品的排名 SELECT item_id, count(*) as total FROM user_behavior WHERE behavior_type = 4 GROUP BY item_id ORDER BY total DESC LIMIT 10; --查询不同类别商品的销售量 SELECT category_id, count(*) as total FROM user_behavior WHERE behavior_type = 4 GROUP BY category_id; ``` 注意:这只是一个简单的示例,实际的数据分析过程可能包含更多的步骤和更复杂的SQL语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值