Python爬虫数据分析实战项目
----爬取并分析100+微淘KOL账号表现
前言
作者将在本文中带领大家完成一次全栈似的数据分析实战项目,包括前期的需求分析,中期的爬虫程序编写以及后期的数据分析及其可视化。作者希望可以借此启发读者,理解数据分析的工作。
需要注意的是,爬虫程序是有一定的时效性的,因目标网址架构时常变化,因此若读者要还原项目时,需要结合当时网站的架构,修改爬虫程序(常见于URL以及正则表达式的改写)。
需求分析
随着dell游戏本架构的升级,dell准备在中国市场投放一个全新的游戏本产品。为了能够让产品爆红,并在全网有一定的声量表现,dell决定在中国寻找最有影响力的10位KOL进行产品代言,并同时决定在淘宝的微淘社区寻找影响力Top3的KOL进行广告业务合作。
通过与需求方的沟通,dell给予了他们预选的科技、游戏、潮流领域的100位博主,我们需要编写爬虫程序,监测这些账号在半年内的表现。在获取到所有有关字段后,再与需求方沟通,确定账号影响力评估模型,并制作榜单。
假设目前需求方给与的部分博主链接如下:
我们打开第一个链接查看下用户主页包含哪些内容:
当我们用Chrome打开链接后,感觉这个页面被扩大的很难受。因此我们用Chrome的开发者模式,选择适配手机浏览器,并重新载入页面。
在本页(链接:https://market.m.taobao.com/app/mtb/app-rax-daren-page1/pages/index/index.html?disableNav=YES&userId=2082725004&content_id=&source=darenhome),有用的信息有:博主名称、博主认证信息、博主微淘粉丝数。我们关注到右边开发者模式中的Sources模块。在Sources模块可以看到我们访问这个链接,服务器端发给我们的所有文件及其是如何架构的。
我们展开部分文件夹,可以发现:用户主页信息是存储在h5api.m.taobao.com文件夹下的h5下的mtop.taobao.maserati.personal.homepage/1.0下的文件。
需要注意的是,当我们第一次打开用户主页,并未向下滑动浏览更多内容时,该文件夹下仅有一个文件(如下图所示):
我们打开该文件,查看文件内容:
可以看出,该文件是JSON格式数据文件,因此我们将文件中的内容复制(除去开头的“mtopjsonp1(”、结尾的“)”字符),粘贴入在线JSON格式化工具,可以看到如下的内容:
{
"api": "mtop.taobao.maserati.personal.homepage",
"data": {
"context": {},
"ok": "true",
"result": {
"data": {
"intimacy": {
"brands": [{
"icon": "https://gw.alicdn.com/tfs/TB1fX2jc79l0K4jSZFKXXXFjpXa-216-216.png",
"info": {
"desc": "点亮粉丝专属身份铭牌,一眼就被看见",
"title": "专属铭牌"
},
"order": "1",
"title": "专属铭牌",
"unlock": "false"
}, {
"icon": "https://gw.alicdn.com/tfs/TB1y7gWMoY1gK0jSZFMXXaWcVXa-216-216.png",
"info": {
"desc": "直播间专属,不定时发放粉丝专属红包",
"title": "专属红包"
},
"order": "2",
"title": "专属红包",
"unlock": "false"
}, {
"ico