0%

一、分析背景和目的

1.1背景

Airbnb成立于2008年,现已时间成为了短租民宿行业的巨头,并且强烈冲击着传统酒店行业的格局,Arbnb作为一款社区平台类产品,其业务遍布191个国家,并且经常出现在商业分析的优秀案例中,Airbnb在做好了产品体验,房源美感,名宿共享服务后,这款产品和背后的业务是否存在可以改进的地方?

1.2 提出分析问题

一款好的产品的发展必然伴随着不断的迭代
在AARRR模型中,第一个A——用户获取,提高新用户获取的数量和质量是不断监测并优化的一个工作,哪些渠道的效果好,企业就要及时调整和增加此渠道的投入,哪些渠道效果不理想,就要及时找出原因并给出解决方案(渠道分析
此外,转化漏斗分析也是数据分析环节的重要指标,可以从宏观角度了解整个产品的转化情况,企业针对流失率较高的漏斗环节进行改进,可以更有效的促进业务的发展(转化漏斗分析

针对以上分析目的,提出以下三个问题:

  1. Airbnb的目前用户群体的特征?(用户特征分析
  2. Airbnb当前的推广渠道有哪些是优质的?有哪些是做的不好的且需要改进?(渠道分析
  3. 当前转化率和流失率中哪一个环节存在问题,或者说有较大进步空间?(转化漏斗分析

二、分析维度

2.1 根据问题设立分析维度

根据问题,提出三个分析维度:
用户画像分析
推广渠道分析
转化漏斗分析

2. 2各维度分析指标

  1. 用户画像分析
  • 用户性别的分布特征;
  • 用户年龄的分布特征;
  • 用户地区的分布特征。
    ps:不同的产品对客户的不同属性敏感度不同,比如有些产品依赖于客户的学历/收入/行业等,此时对客户进行客户画像分析就需要加入这些维度的数据,使客户画像更清晰,更有价值
  1. 推广渠道分析
  • 每月新增用户
  • 不同用户端的注册量
  • 不同推广渠道的注册量
  • 不同营销内容的注册量
  • 不同推广渠道的转化率
  • 不同营销内容的转化率
  1. 转化漏斗分析
  • 注册用户占比
  • 活跃用户占比
  • 下单用户占比
  • 实际支付用户占比
  • 复购用户占比

三、数据清洗

3.1 数据集描述

数据集名称: airbnb-recruiting-new-user-bookings
数据集来源:https://www.kaggle.com/c/airbnb-recruiting-new-user-bookings/data
数据集简介:此数据集使kaggle上的一个竞赛项目,主要用来制作目的地信息预测模型,此数据集住主要包含两张数据表,其中user表为用户数据,session为行为数据
数据集大小:
213451 * 16(user)、
10567737 * 6(sessions)

熟悉数据:

###用户表
id:用户ID
date_account_created:账户创建日期
timestamp_first_active:账户首次活跃时间戳(可能早于账户创建时间和首次预定日期)
date_first_booking:账户首次预定日期
‘gender’:性别
‘age’:年龄
‘signup_method’:注册方式
‘signup_flow’:用户注册时的来源页面
‘language’:用户语言偏好
‘affiliate_channel’:付费营销类型
‘affiliate_provider’:引流供应商
‘first_affiliate_tracked’:首次认知引流追踪(注册前与用户交互的第一个营销手段)
‘signup_app’:注册来源
‘first_device_type’:首次来访设备
‘first_browser’:首次浏览器
‘country_destination’:目的国家

###session表(用户web会话日志)
user_id: 与用户表中的“id”列关联
action:动作(浏览,搜索、
action_type:动作类型(点击、
action_detail:动作细节
device_type:会话使用设备
secs_elapsed:持续时间

3.2 重复值处理

用户表中,每个用户生成一条记录,所以需排查id字段是否重复,
重复数据
经过查看无重复,不需要处理重复值

3.3缺失值处理

经查看缺失情况如下
缺失数据

缺失原因推测及处理

  • date_first_booking(首次预定日期)存在较多缺失,可以推测是因为客户还未下单
  • age年龄缺失是因为客户未填写这部分信息
  • first_device_type 注册来源渠道缺失是前端未追踪到这部分信息
    处理
    其他字段都很完整,后续是对每个字段进行统计分析,所以 保留有缺失的记录,在统计时对字段分别进行值和缺失的统计

3.3 异常值处理

  1. ‘age’字段存在的异常数据很多,年龄大于100的有2K多条记录,还存在一部分,2013,2014这种年份数据,推测这些脏数据是用户随意填写造成
  • 处理:将年龄小于7或大于75的数据统一设为0
  1. ‘gender’字段存在大量‘-unkonw-’和‘-’可以看作这些性别数据,客户未填写
  • 处理:将‘-unknown-’和‘-‘统一为’-unknown-‘

四、用户画像分析

用户特征分为用户特点用户行为
用户特点:人口统计信息,性格爱好,需求特征等
用户行为:频率,习惯,消费等

4.1用户的性别分布特征

用户性别占比

对gender字段进行统计,未知占45.0%,女性占比29.5%,男性占比25.5%
可以看出,男女用户占比差别不大,男性用户比女性用户多4%

4.2 用户年龄分布

年龄分布
从年龄分布的直方图中可以看出:
Airbnb的用户主要为“青中年”群体,其中用户数量最多的是80后(29岁~39岁)其次是90后,然后是70后。

4.3 用户地区分布

(绘制语言树状图)
用户使用语言

  • airbnb产品遍布多个地区
  • 有超过96%的用户是英语国家(欧美),airbnb是2013年开始进入中国市场(此数据集采集止于2014年)所以此时中文用户数量排第二,但占比还是较小。

五、流量渠道分析

5.1 每月新增用户

(流量增长趋势图)
每月新增用户趋势

  • airbnb的用户增长曲线健康,前期(2011年之前)增长平缓,2012年2月之后开始快速增长。
  • 此产品的新用户增长存在季节性规律:每年的7~10月份产品会迎来用户增长的高峰,推测为夏季(北半球)是旅游的旺季,而短租类产品正好是旅行消费的一种。

5.2不同用户端的注册量

不同客户端注册量

  • 用户主要使用电脑桌面客户端进行的注册,可能2014年手机并没有现在普及
  • 客户主要使用苹果设备

5.3不同推广渠道的注册量及转化率

  • 总体情况
    不同渠道拉新及转化
  • direct(直接注册)的注册量最多,而我们主要分析目的是分析推广渠道的优劣,后续分析中排除direct

将分析聚焦到注册量大于300的营销渠道上

不同营销渠道拉新及转化

5.3.1渠道拉新方面

  • 推广渠道上,拉新量前7个渠道(共37个渠道)的注册量占总推广渠道来源的87%,符合二八法则
  • 表现最好的是Google的品牌竞价(sem)渠道,Google的非品牌竞价的注册量紧随其后居拉新第二位

5.3.2渠道转化率方面

  • 整体渠道转化率均不错,多数渠道的转化率都在30%以上
  • 主要渠道(注册量前7名的渠道)中,Google_content的转化率存在异常,转化率为15.6%,明显低于其他主要渠道的转化率
  • other_api、google_seo、other_other三个渠道转化率表现优秀,均大于40%

##5.4 不同营销内容的注册量及转化率
image.png

  • 注册量排名第一的营销内容为untracked(未跟踪到),以及部份追踪数据为NULL,产品的数据跟踪异常

将分析聚焦到有追踪数据的营销内容上
image.png

5.3.3 营销内容注册量方面

  • 从追踪到的数据来看,linked和omg的注册量和转化率均表现优异,两者带来的注册量占总营销内容来带的注册量的90%以上

5.3.4 营销内容转化率方面

  • 整体上转化率表现不错,除local ops 其他营销内容的转化率均在34以上
  • marketing转化率达45%

六、转化漏斗分析

对session表的user_id进行统计,此次进行用户分析的总用户数为:135484

6.1活跃用户占比

定义活跃用户为操作产品的次数大于10次的用户
活跃用户数为:111386
活跃用户占比= 活跃用户数/用户总数 = 82.2%

6.2 注册用户占比

注册用户数量:73815
注册用户占比 = 注册用户数/总用户数 = 54.4%

6.3下单用户占比

下单用户数:10367
下单用户占比= 下单用户数量/总用户数量 = 7.7%

6.4实际支付用户占比

实际支付用户总数量 :9019
付款用户占比 =实际支付用户总数量/用户总数量 = 6.7%

6.5复购用户占比

复购用户总数量 :5447
复购用户占比 = 复购用户总数量 / 用户总数量 = 4.0204%
用户转化漏斗

  • 从转化漏斗图可以看出,注册用户到下单的转化率为14.0%,流失率较高
  • 活跃用户的注册率为66.3%,可进一步提高
  • 下单到实际支付有约13.0%的流失
  • 复购率达60.4%,表现良好

七、分析结论汇总

7.1 用户画像

  • 用户性别、从有性别记录的数据来看,用户中男女性别占比差别不大,男性比女性占比仅多4%
  • 用户年龄、用户年龄段集中在青中年,最多的是80后,其次为90后,然后70后
  • 用户分布、用户绝大部分来自使用英语的欧美国家,占比高达96%以上,其次是中国

7.2 流量渠道

  • 2011年之前,用户增长缓慢,2012年开始用户迅速增长
  • 用户增长呈现一定季节性,7~10月份是旅游旺季,出现用户增长峰值
  • PC端和移动端用户均是苹果产品占优势
  • 直接从应用市场下载注册的用户占64.4%
  • 排名前7的营销渠道(共38个渠道)的拉新占所用渠道拉新的90%以上

优质渠道
Google的seo和seo_no_brand 拉新和转化都表现较好

表现不佳的渠道

  • Google的content转化出现异常,明显低于其他主要渠道较多
  • other_api 转化率表现不佳
  • 各供应商的content渠道转化率都较低在10%左右,其中gsp的content渠道转化率最低,约8.2%

营销内容方面:

  • 前端统计功能异常,未追踪到的用户达50%以上
  • linked和omg两个内容表现优异,带来的用户占所有营销内容带来的用户的90%以上
  • local ops带来的转化率最低

7.3 转化漏斗

  • airbnb用户转化漏斗中注册用户到下单这个环节的转化率仅14%
  • 活跃用户的注册率可以有进一步优化
  • 活跃和复购环节表现良好
    #八、业务和产品上的建议

八、分析建议

8.1 关于用户画像方面

  • 根据用户年龄特征分布,建议投放广告时主要针对20~40岁年龄段的目标用户
  • 在用户年龄字段出现较多异常值,建议产品开发设置用户输入信息的验证

8.2 关于推广渠道上

  • 7~10月份是业务旺季,建议运营部门在这之前做好宣传准备,加大活动营销力度,增加广告投放
  • 在主要营销渠道(注册量前7的渠道)中Google的content渠道的转化率非常低(只有15%),建议运营部门评估此渠道的ROI,考虑是否优化此渠道的投放
  • other_api,Google_seo,other_other,craigslist_other,facebook_seo这几个渠道转化率很高,都在40%以上,可以考虑增加这几个渠道的投放
  • 各渠道的SEO推广转化效果都挺好,SEO的获客成本较低,建议增加SEO相关资源的投入,考虑扩大SEO团队
  • 营销内容方面,建议优化表现较差的local ops,对不同的营销内容做对比分析,总结内容策划方面的方法论

8.3 转化漏斗方面

  • 活跃用户的注册环节流失率较高,建议用户调研,产品是否不能满足需求,或是注册流程有障碍
  • 注册用户的下单率很低,仅14%的注册用户下单,此环节是企业营收的关键步骤,建议围绕提升下单率开展工作
  • 下单到实际支付有约13%的用户流失,建议查明原因(是用户决策问题,还是支付流程问题,或是某些地区不支持某种支付类型)

分析背景与目标

客户关系管理是企业核心问题,客户关系管理是将客户分类,通过客户分类,区分客户价值,针对不同价值的客户制定优化的个性化服务方案,采取不同营销策略,合理优化资源配置

目标:

  1. 借助累积的客户数据,对客户进行分类
  2. 对不同类别客户进行特征分析,比较不同类型客户价值
  3. 对不同价值客户类群制定相应不同的营销策略

分析方法

广泛运用于客户价值识别的RFM模型是通过三个指标(最近消费间隔Recency,消费频率 Frequency和消费金额 Monetary)对客户价值进行识别。

本案例是航空公司客户价值识别,在RFM模型的基础上对指标进行优化,采用客户关系长度L,消费时间间隔R,消费频率F,飞行里程M,和折扣系数C五个指标区分客户价值,记为LRFMC模型

分析过程

数据探索性分析

data文件夹下有两张表,表1air_data.csv为会员档案信息及其乘坐航班记录,表2 为表1各字段说明

1
2
3
4
5
import pandas as pd

data_file = '../data/air_data.csv' #原始数据表
data = pd.read_csv(data_file, encoding = 'utf-8')
data.head()#查看导入的数据

可以看到共有44个字段,62988条记录,部分字段有缺失。

使用pandas-profiling package可以快速生成数据的详细报告

1
2
import pandas_profiling  
pandas_profiling.ProfileReport(data)

数据集的概述

对各字段进行分析,字段为numeric则会进行描述统计分析,直方图,频率等一系列分析。若字段为categorical,则会分析频率,做条形图

份析各字段相关性

将报告保存为HTML放在temp文件夹下

1
2
profile = pandas_profiling.ProfileReport(data)
profile.to_file(outputfile='../temp/air_report.html')

数据预处理

  • 数据清洗
  • 属性规约
  • 数据变换

1. 数据清洗

  • 删除票价字段缺失的记录
  • 删除票价字段异常的记录(票价为0,折扣率不为0,飞行里程数不为0的字段)
1
2
3
4
5
6
7
8
9
10
11
12
13
clean_file = '../temp/data_cleaned.csv' #清洗后保存文件
# 删除票价字段**缺失**的记录
# 即保留第一年票价不为空且第二年票价也不为空的记录
data = data[data['SUM_YR_1'].notnull() * data['SUM_YR_2'].notnull()]

# 删除票价为0,平均折扣率不为0,总飞行里程数不为0的记录
# 即保留票价非0,或平均折扣总飞行里程同时为0的记录
index1 = data['SUM_YR_1'] != 0
index2 = data['SUM_YR_2'] != 0
index3 = (data['SEG_KM_SUM'] == 0)&(data['avg_discount'])

data = data[index1|index2|index3]
data.to_csv(clean_file) # 清洗后数据保存到文件

2. 属性规约

原始数据中属性高达44个,根据航空公司客户价值LRFMC模型,选择与LRFMC指标相关的6个属性

  • FFP_DATE 入会时间
  • LOAD_TIME 观测窗口结束时间
  • FIGHT_COUNT 飞行次数
  • AVG_DISCOUNT 平均折扣率
  • SEG_KM_SUM 观测窗口总飞行公里数
  • LAST_TO_END 最后一次乘机时间至观察窗口末端时长
1
data = data[['FFP_DATE','LOAD_TIME','FLIGHT_COUNT','avg_discount','SEG_KM_SUM', 'LAST_TO_END']]

3. 数据变换

将数据转换为’适当‘的格式,以适应挖掘任务及算法的需要,本案例采用的数据变换为属性构造数据标准化

  • 属性构造

    L = LOAD_TIME - FFP_DATE

    R = LAST_TO_END

    F = FIGHT_COUNT

    M = SEG_KM_SUM

    C = AVG_DISCOUNT

创建一个新的DataFrame保存构造的LRFMC数据

1
lrfmc = pd.DataFrame(columns = ['L', 'R', 'F', 'M', 'C'])

首先构造L指标,为观测窗口的结束时间-入会时间,原想两个字段相减就好了,结果发现从csv文件导入的数据日期是object对象,需要先将两个日期字段转换为datetime对象

1
2
3
# 将'FFP_DATE'和'LOAD_TIME'字段转换为datetime对象
datel = ['FFP_DATE', 'LOAD_TIME']
data[datel] = data[datel].apply(pd.to_datetime,format = '%Y-%m-%d' )

构造LRFMC数据

1
2
3
4
5
lrfmc['L'] = data['LOAD_TIME'] - data['FFP_DATE']
lrfmc['R'] = data['LAST_TO_END']
lrfmc['F'] = data['FLIGHT_COUNT']
lrfmc['M'] = data['SEG_KM_SUM']
lrfmc['C'] = data['avg_discount']

L 为两个日期相减得来,数据类型为timedelta 需转换为int类型

1
lrfmc['L'] = lrfmc['L'].dt.days
1
2
3
# 保存文件
lrfmc_file = '../temp/LRFMC.xlsx'
lrfmc.to_excel(lrfmc_file, index = False)

注意上面数据L和R是以天为单位,可以转换为月份进行后续分析也可直接用天为单位。

  • 数据标准化

    标准化有多种,此处使用标准差法标准化
    $$
    \frac {x- \mu }{ \delta }
    $$

    1
    2
    3
    4
    5
    6
    z_lrfmc = (lrfmc - lrfmc.mean(axis = 0))/(lrfmc.std(axis = 0))
    z_lrfmc.columns = ['Z'+ i for i in lrfmc.columns]

    # 保存到文件
    z_score_file = '../temp/z_score_data.xlsx'
    z_lrfmc.to_excel(z_score_file, index = False)

模型构建

  • 客户聚类(K-Means聚类算法)
  • 客户价值分析

1. 客户聚类

采用K-Means算法将客户进行分群,分为5类(结合业务理解来确定分类群数)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from sklearn.cluster import KMeans
data = z_lrfmc
k = 5 # 将客户分为5类

kmodel = KMeans(n_clusters = k, n_jobs = 4) # n_job为并行数,一般为电脑CPU数
kmodel.fit(data) # 训练模型

#查看模型中心
kmodel.cluster_centers_
#查看各样本对应的类别
kmodel.labels_

kmeansCenters = pd.DataFrame(kmodel.cluster_centers_, columns = data.columns)
labelsCounts = pd.DataFrame(kmodel.labels_)[0].value_counts()
kmeansLabels = pd.DataFrame(labelsCounts, index = None)
kmeansLabels.columns = ['Num']
kmeansResult = pd.concat([kmeansCenters, kmeansLabels], axis=1)
kmeansResult['Class'] = [1,2,3,4,5]
kmeansResult = kmeansResult[['Class','Num', 'ZL', 'ZR', 'ZF', 'ZM', 'ZC']]
kmeansResult
kmeansResult.to_excel("kmeansResult2.xlsx")
dataLabels = pd.DataFrame(kmodel.labels_, columns= ['CLASS']) + 1
data = pd.concat([data, dataLabels],axis=1)

2.数据可视化

1
2
3
4
5
6
7
8
9
10
11
import matplotlib as mlb
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.bar(kmeansResult['Class'],kmeansResult['Num'],color='rgby')
plt.title(u'五类群体的数量分布')

plt.show()
%matplotlib inline

用excel绘制出5类客户的群体特征分布

分析: (这里可能群体的标签会改变,因为每次聚类的结果不太相同,但不影响)
群体1的C属性上最大

群体2的L、C属性最小

群体3的R属性最大,F、M属性最小

群体4的M、F属性属性最大,R属性最小

群体5的L属性最大

分析结论

根据LRFMC模型,我们已经将客群分为5类

重要保持客户

平均折扣率高(C↑),最近有乘机记录(R↓),乘机次数高(F↑)或里程高(M↑)
这类客户机票票价高,不在意机票折扣,经常乘机,是最理想的客户类型
公司应优先将资源投放到他们身上,维持这类客户的忠诚度

重要发展客户

平均折扣率高(C↑),最近有乘机记录(R↓),乘机次数低(F↓)或里程高(M↓)这类客户机票票价高,不在意机票折扣,最近有乘机记录,但总里程低,具有很大的发展潜力公司应加强这类客户的满意度,使他们逐渐成为忠诚客户

重要挽留客户

平均折扣率高(C↑),乘机次数高(F↑)或里程高(M↑),最近无乘机记录(R↑)这类客户总里程高,但较长时间没有乘机,可能处于流失状态公司应加强与这类客户的互动,召回用户,延长客户的生命周期

一般/低价值客户

平均折扣率低(C↓),最近无乘机记录(R↑),乘机次数低(F↓)或里程低(M↓),入会时间短(L↓)这类客户机票票价低,经常买折扣机票,最近无乘机记录,可能是趁着折扣而选择购买,对品牌无忠诚度公司需要在资源支持的情况下强化对这类客户的联系低价值客户平均折扣率低(C↓),最近无乘机记录(R↑),乘机次数低(F↓)或里程低(M↓),入会时间短(L↓)这类客户与一般客户类似,机票票价低,经常买折扣机票,最近无乘机记录,可能是趁着折扣而选择购买,对品牌无忠诚度

根据2.3的结论,我们基本可得:

客群1属于重要发展客户;

客群2属于一般客户;

客群3属于重要保持客户;

客群4属于重要挽留客户;

客群5属于一般客户。

说明:

我是windows10 环境,cmd命令行

参考了这两篇文章,感谢!

https://zhuanlan.zhihu.com/p/25729240

https://xuanwo.io/2015/03/26/hexo-intor/

准备

准备好如下软件

根据自己电脑系统版本32位或64位下载最新安装软件,保持默认设置,一路next下来,安装完成

检查一下要求的主件是否安装好了

运行cmd命令行,依次输入 如下命令,以检查版本号的形式来检查软件是否安装好了

1
2
3
node -v
npm -v
git --version

如图输入命令后均出现了相应版本号,说明安装好了

准备GitHub

  • 注册GitHub账号

  • 配置git账号和邮箱

    打开git bash 输入如下命令

    1
    2
    3
    git config --global user.name "xxxx"   设置用户名

    git config --global user.email "xxxx" 设置邮箱
  • 创建代码库

    登录GitHub后创建一个repository

Github将会自动替你创建出一个页面。 如果你的配置没有问题,那么yourname.github.io这个网址就可以正常访问了~ 如果yourname.github.io已经可以正常访问了,那么Github一侧的配置已经全部结束了。

配置Hexo

安装hexo

在自己喜欢的位置创建一个文件夹,在文件夹内按住shift+鼠标右键 选择在此处打开命令行窗口(或者cd到此文件夹)此后操作在命令行中进行

输入命令

1
npm install -g hexo-cli

就可以看到在下载了

下载完

有两个WARN不必惊慌,然后输入

1
npm insrall hexo --save

等它开始刷白字,刷完,输入如下命令,再一次以检查版本号的形式检查hexo是否安装好了

1
hexo -v

初始化hexo

输入命令

1
hexo init blog

等待初始完成,出现INFO Start blogging with Hexo!

体验hexo

命令行依次输入

1
2
hexo g
hexo s

提示:INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

就可以在浏览器通过 http://localhost:4000/访问了,可以看到

重新回到cmd窗口输入

1
ssh-keygen -t rsa -C "Github的注册邮箱地址"

一路enter,得到Your public key has been saved in /c/Users/user/.ssh/id_rsa.pub.

找到该文件用记事本打开,复制里面的内容,到github右上角点你的头像选setting,选SSH and GPG keys 再点new SSH key,title —> blog,key —> 粘贴你复制的内容,添加 SSH key。

配置博客

再blog目录下,用记事本或其他编辑器打开_config.yml,修改参数信息,每个参数冒号后面要留一个空格

修改网站相关信息

1
2
3
4
5
6
title: 网站名称
subtitle: 副标题
description: 网页描述
author: 小腿毛
language: zh-Hans
timezone: 不设置即为系统时区

配置部署(修改成自己的)

1
2
3
4
deploy: 
type: git
repo: https://github.com/username/username.github.io.git
branch: master

发表文章

两种方法

①在cmd命令行输入

1
hexo new "文章标题"
1
INFO  Created: 你喜欢的文件夹\blog\source\_posts\文章标题.md

找到该.md文章,用markdown编辑器编写你的文章

②直接到你喜欢的文件夹\blog\source\_posts\

用markdown编辑器编写你的文章(后缀为.md)

注意 新建的文章头需要添加一些yml信息,如下所示:

1
2
3
4
5
6
---
title: hello-world //在此处添加你的标题。
date: //在此处输入你编辑这篇文章的时间。
categories: //在此处输入这篇文章的分类。
toc: true //在此处设定是否开启目录,需要主题支持。
---

编写完成后

在blog文件夹打开cmd命令行(或者cd到该文件夹),依次输入如下命令

1
2
3
hexo clean #清除缓存 网页正常情况下可以忽略此条命令 #可简写为 hexo c
hexo generate #生成 #可简写为 hexo g
hexo server #启动服务预览,非必要,可本地浏览网页 #可简写为 hexo s

这时再用浏览器打开localhost:4000/就可以看到刚才那篇文章了

最后发布到网上,命令行输入

1
hexo deploy

如果在执行 hexo deploy 后,出现 error deployer not found:github 的错误,执行:

1
npm install hexo-deployer-git --save

等待,中途会让你登录你的GitHub,登录就是了,完成后再进入 username.github.ioj就可以看到你的文章了,别人也可以通过以上网址看到你的博客了,

到此完成了博客搭建,可再进行主题更换和一些美化和调整

它就是你的小可爱了,多多探索调教哦~