爬取网易严选商品数据
今天我想是这半个月的最后一篇文章了。这半个月需要完成一些技能考试,所以很忙。基本上都没有时间写文章,所以在这里先和大家说一声抱歉!这段时间之后我必定会重新归来,希望大家能够耐心的等待。。。
记得上一篇文章主要写的内容是淘宝数据,使用的是自动化测试工具,selenium,模拟浏览器进行数据的获取。大家可能也会发现我写的文章基本上都是教大家,怎么样写爬虫,但是却没有涉及到数据分析及可视化的部分。
主要原因有四点:
- 第一点:如果太快进入数据分析的过程也许会让大家在知识的掌握上可能会有瓶颈
- 第二点:现在的爬虫技术还有很多内容没有讲到,比如scrapy框架、数据库、多线程、ip代理等等。
- 第三点:大家也会发现,现在我每次发送的文章下面都会有一篇短文,这篇短文主要的目的就是总结出Python的基础知识,给没有太好基础的小伙伴一个梳理知识的机会。
- 第四点:我的公众号开通的时间也不是很长,只有我一个人在弄,孤军奋战。所以更新时间与技术上升的速度都不会太快。
因为我个人进入互联网公司担任Python开发工程师的时间虽然不是很长,但是也基本知道现在的互联网公司对应聘者的要求是什么,像我这样生于民间的技术爱好者很多,大家都是孤军奋战,不是培训机构,不会太刻意去宣传自己。基本上都是在其他公众号那边转载文章,所以在这里对给予我文章转载机会的公众号运营者表示感谢。
咳咳,但是也有不少是投稿失败的,在这里先伤心一下。
继续写文章…
分析网页
评论分析
首先进入网易严选搜索“胸罩”之后,点击某一款商品进行分析。
在这里,我选择第一件商品作为本次项目的分析数据来源。
点击好评率即可记入评论区查看评论。
依然还是老套路,打开开发者工具,点击network,点击XHR,所有的API信息基本上都在这个类型的文件中,一番查找之后会很惊喜的发现,这里有我们需要的数据信息。
经过测试发现,向该url地址发送请求时正在有效的参数是itemId、size和page
经过测试发现size是的评论数量,而page指的是评论的页数,那么itemId会使什么呢?一般来说中规中矩的程序员都不会乱起名字,所以盲猜是每一件商品的ID。那么也可以测试一下。
经过抓包测试也可以惊喜的发现,果然被我猜中了。
惊不惊喜,意不意外。第一件商品的itemId值就是3988220。
获取数据
从上图的数据大家应该很快可以搞定很多数据内容吧。今天我们就把commentlist的内容保存进mongoDB数据库中。
编写代码
将数据保存至数据库
conn = MongoClient(host='localhost', port=27017) # 创立链接
db = conn.test2 # 获取数据库
mongo_collection = db.c1 # 获取集合
def details(product_id):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 '
}
url = 'https://you.163.com/xhr/comment/listByItemByTag.json?'
try:
C_list = []
for i in range(1,100):
params = {
'itemId':product_id,
'page':i,
'size':20
}
response = requests.get(url, params=params, headers=headers).json()
print("爬取第 %s 页评论" % i)
comment_list = response['data']['commentList']
C_list.append(comment_list)
time.sleep(2)
try:
mongo_collection.insert_many(comment_list)
except:
continue
return C_list
except:
raise
商品数据分析
下面开始就到了激动人心的时刻了,一览妹子们喜欢什么吧。。
颜色偏好
从上图可以看出妹子喜欢的是浅肤色的,嗯,这时你要有心理准备了
颜色占比
这些颜色中,有你的她喜欢的吗?
尺寸分布
看完这张图,马上脑补这是个什么玩意?
我只知道有A、B、C、D
请问80、75那些是什么东西…
先到这里吧,一切只为6.18的到来。。。
致谢
好了,又到了该说再见的时候了,希望我的文章可以给你带来知识,带给你帮助。同时也感谢你可以抽出你宝贵的时间来阅读,创作不易,如果你喜欢的话,点个关注再走吧。更多精彩内容会在后续更新,你的支持就是我创作的动力,我今后也会尽力给大家书写出更加优质的文章。
更多内容
更多精彩内容可以关注我的公众号,比如说是获取源码、添加我的微信等等