用Python抓取某东购买记录并统计MM的bra大小!有…
2019-03-13 23:36:22来源:博客园 阅读 ()
二胖最近在逛京东的时候偶然发现:MM们购买bra的记录上竟然留下了尺寸和颜色等信息,我当时就想,要不要抓点数据下来看看啊?
然后就有了这篇文章~~~
Let's go!
科普一下
这里的,教,程大家一起学习!在我的Python学习 qun:【前面9 8 4 】【中间6 3 2 】【后面5 7 9 】动动你的小指头把数字连起来即可,欢迎加入到学习队伍里,有许多正在提升自己的小伙伴, 大家对学习 Python编程有问题,可以随时问,大家多交流!
在抓数据前,先给各位男性朋友科普一下,这个size信息到底怎么看(ps:我也是在网上查的(⊙o⊙)…)
70B,80C...到底啥意思?
数字的意思是下胸围,是水平围绕胸部底部一周的长度,即胸部下围尺寸,单位是厘米。
如果下胸围在68cm~72cm之间,那么就可以选择70码。
然后ABCDEFGH就是size了,请自行体会~~~
所以一个尺码是由两个参数组成~
分类
二胖发现,一款产品并不是所有的尺寸都有,比如下面的两张图,第一款产品的尺寸只有ABC,而第二款产品的尺寸是B-F。
很少有一款产品所有尺寸都有。
所以,很难仅从一款产品推测出所有人的购买趋势。
这里,二胖选择了把小号(ABC)和大号(B-F)分开讨论,并且每种型号各抓取三个不同的品牌来进行统计。
在这种情况下,数据不一定准确,但是至少能体现出大家的购买趋势。
参数选择
这里我们就选择三个参数来分析,分别是产品的尺寸(你懂的,就是大小),产品的颜色以及用户购买产品的平台。
小号(A-C)
小号指的是仅有ABC尺码的产品,这里统计了3款不同的产品,合计3000条交易记录。
1.尺码
从统计结果来看,小号产品中,75B和80B卖的最好。
2.颜色
在小号产品中,黑色最受用户青睐,也许是相对比较性感?
3.购物平台
总的来说,还是从京东App购买的用户最多,但也可以看到,有8%的用户是在微信平台上进行交易,这已经是一个不小的数字了。
大号(B-F)
1.尺码
大号指的是尺码在B-F之间的产品,和小号一样,也是统计了3款不同的产品,合计3000条交易记录。
大号产品的尺寸稍微多一些,从B-F都有,不过从大家的购买记录来看,还是B占据了大头,B和C加起来已经超过了三分之二。
2.颜色
可能是由于具体产品的影响,大号和小号的颜色差别还挺大,大号最受欢迎的颜色是酒红色,其次是紫色,不明觉厉~~
3.购物平台
从购买来源上来说,两种型号的产品差别不大,大多数用户都是通过京东App购买的,不过也有细微的差别。
购买小号产品的用户比购买大号产品的用户更喜欢用iphone(大约高了4%)。
技术分解
看完了上面的分析,我们来看看是如何将数据抓取下来的。
上次给大家介绍了使用Java抓取微博数据,而这次爬虫使用的是Python的爬虫框架Scrapy。
主要流程代码如下:
# -*- coding: utf-8 -*-
importscrapy
fromscrapyimportRequest
importjson
importmath
importtime
importre
classBraSpider(scrapy.Spider):
name ='bra'
headers = {
":authority":"sclub.jd.com",
":method":"GET",
":scheme":"https",
"accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"accept-encoding":"gzip, deflate, br",
"accept-language:":"zh-CN,zh;q=0.9,en;q=0.8",
"cache-control":"max-age=0",
"upgrade-insecure-requests":"1",
"cookie":"t=8444fb486c0aa650928d929717a48022; _tb_token_=e66e31035631e; cookie2=104997325c258947c404278febd993f7",
"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
}
base_url ="https://sclub.jd.com/comment/productPageComments.action?productId=17209509645&score=0&sortType=5&pageSize=10&page=%d"
defstart_requests(self):
forpageinrange(1,100):
url = self.base_url%page
print(url)
self.headers[':path'] = url
yieldRequest(url, self.parse,headers = self.headers)
#time.sleep(2)
defparse(self, response):
content = json.loads(response.text)
comments = content['comments']
forcommentincomments:
item = {}
item['content'] = comment['content']#评论正文
item['guid'] = comment['guid']#用户id
item['id'] = comment['id']#评论id
item['time'] = comment['referenceTime']#评论时间
item['color'] = self.parse_kuohao(comment['productColor'])#商品颜色
item['size'] = self.parse_kuohao(comment['productSize'])#商品尺码
item['userClientShow'] = comment['userClientShow']#购物渠道
print(item)
yielditem
#干掉括号
defparse_kuohao(self,text):
new_text = text
searchObj1 = re.search(r'(.+)', text, re.M|re.I)
searchObj2 = re.search(r'\(.+\)', text, re.M|re.I)
ifsearchObj1:
text = searchObj1.group().strip()
new_text = text.replace(text,'').strip()
ifsearchObj2:
text = searchObj2.group().strip()
new_text = text.replace(text,'').strip()
returnnew_text
原文链接:https://www.cnblogs.com/qingdeng6359/p/10519345.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:包
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash