使用shell分析豆瓣用户的电影喜好

摒弃了多线程,发现多线程和单线程用的时间差不多,多线程情况下存在统计错误的情况,有待排查原因。
#/bin/bash

# name:			data_analysis.sh
# version: 		1.0
# ceateTime:	2018-08-10
# description:	输入豆瓣用户id,得出来豆瓣用户看过电影的类型便签
# author:		mengyanhuangchao
# email:		406993906@qq.com

# description:	判断输入参数是否合

#INFO打印
info_log(){
    echo -e "[INFO]$1"
}

#SUCCESS打印

success_log(){
    echo -e "\033[32m[SUCCESS]\033[0m$1"
}

#ERROR打印
error_log(){
    echo -e "\033[31m[ERROR]\033[0m$1"
}

if [ $# -eq 1 ];then
    if [ -n "$(echo $1| sed -n "/^[0-9]\+$/p")" ];then
        info_log "The user id you searched for is $1"
    else
        error_log "The user id must number"
        exit 1
    fi
else
	error_log "Usage: bash $0 162545416";
	exit 1
fi
movie_number=`curl -s https://movie.douban.com/people/$1/collect|egrep "看过的电影"|awk -F '(' '{print $2}' |awk -F ')' '{print $1}'|uniq`
user_name=`curl -s https://movie.douban.com/people/162545416/collect|egrep "看过的电影"|awk -F '看过的电影' '{print $1}'|awk -F '>' '{print $2}'|tail -n1`
info_log "$user_name see $movie_number movies"
info_log 'Please wait a moment....'
echo '剧情 喜剧 动作 爱情 科幻 悬疑 惊悚 恐怖 犯罪 同性 音乐 歌舞 传记 历史 战争 西部 奇幻 冒险 灾难 武侠 情色' >type
for i in `cat type`;do
    echo  $i 0 >> data
done

for i in `seq 0 15 $movie_number`;do
    curl -s https://movie.douban.com/people/$1/collect?start=$i > flow_data
    for i in `cat type`;do
         n=`cat flow_data|grep $i|wc -l`
         m=`cat data |grep $i|tail -n 1|awk -F ' ' '{print $2}'`
         x=`expr $m + $n`
         echo $i $x >>data
     done
done
cat data |tail -n 21 |sort -rn -k2 > $user_name
rm flow_data  type data  
success_log "data existence $PWD/$user_name"


结果如下:

test@test data1]$ bash data_analysis.sh  162545416

[INFO]The user id you searched for is 162545416
[INFO]猫仔饭 see 167 movies
[INFO]Please wait a moment....

[SUCCESS]data existence /home/test/data1/猫仔饭

[test@test data1]$ cat 猫仔饭 
剧情 146
恐怖 65
悬疑 61
爱情 54
惊悚 52
犯罪 46
喜剧 43
奇幻 40
战争 27
冒险 19
音乐 18
动作 17
武侠 15
情色 14
科幻 12
历史 7
传记 6
同性 2
西部 1
灾难 1
歌舞 0


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值