数据定向到mysql数据库中,并备份到本地文件
#/bin/bash
# name: get_see_movies.sh
# version: 1.0
# ceateTime: 2018-08-12
# 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/$1/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....'
for i in `seq 0 15 $movie_number`;do
curl -s https://movie.douban.com/people/$1/collect?start=$i > html
cat html |egrep "<em>"| egrep -v '= title'|awk -F '>' '{print $2}' |awk -F '<' '{print $1}'|awk -F ' ' '{print $1}' > moviename
for moviename in `cat moviename`;do
cat html| egrep -A13 "<em>$moviename" >test1
rating=`cat test1|egrep 'rating' |awk -F 'rating' '{print $2}' |awk -F '-' '{print $1}'`
date=`cat test1|egrep 'date' |awk -F '>' '{print $2}' |awk -F '<' '{print $1}'`
comment=`cat test1|egrep 'comment' |awk -F '>' '{print $2}' |awk -F '<' '{print $1}'`
tags=`cat test1|egrep 'tags' |awk -F '>' '{print $2}' |awk -F '<' '{print $1}'`
echo -e "|$moviename |$date |$comment |$tags |$rating" >>movietable
mysql -u root -padmin <<EOF
use moviebase;
insert into movietable (moviename,date,comment,tags,rating) values ('$moviename','$date','$comment','$tags','$rating');
EOF
done
done
rm html moviename test1
success_log "all info save $PWD/movietable and mysql"
[root@test test]# bash get_see_movies.sh 162545416
[INFO]The user id you searched for is 162545416
[INFO]猫仔饭 see 169 movies
[INFO]Please wait a moment....
[SUCCESS]all info save /home/test/data1/mysql/test/movietable and mysql
mysql> SELECT * from movietable WHERE BINARY rating='5';
+-----------------------+------------+------------------------------------------+----------------------------------------------+--------+
| moviename | date | comment | tags | rating |
+-----------------------+------------+------------------------------------------+----------------------------------------------+--------+
| 飞屋环游记 | 2018-05-31 | | | 5 |
| 疯狂动物城 | 2018-05-31 | | | 5 |
| 忠犬八公物语 | 2018-05-31 | | | 5 |
| 机器人总动员 | 2018-04-12 | 没有见过光之前,黑暗可能还䟼 | 5 |
| 我们这一天 | 2018-02-28 | 最爱的剧,没有之一~ | | 5 |
| 熔炉 | 2018-02-12 | 拍出了生活最真实的样子。 | | 5 |
| 星际穿越 | 2018-02-09 | 和男朋友一起看的第一部电影 | 5 |
| 楚门的世界 | 2018-02-09 | “如果再也不能见到你,祝你䟼 标签: 人生 楚门的世界 经典 | 5 |
| 泰坦尼克号 | 2017-11-30 | 爱情! | | 5 |
| 阿甘正传 | 2017-11-30 | 坚持! | | 5 |
| 肖申克的救赎 | 2017-11-30 | 最爱! | 标签: 美国 | 5 |
| 大宋提刑官 | 2017-08-19 | 佳作。 | 标签: 古装 悬疑 大宋提刑官 推理 | 5 |
| 不能说的秘密 | 2017-08-06 | 好吧,看了知乎上某个回答后㟼 标签: 周杰伦 不能说的秘密 | 5 |
| 冰川时代 | 2017-07-02 | 很喜欢~ | 标签: 搞笑 经典 温情 | 5 |
| 这个杀手不太冷 | 2017-07-02 | 人生一直如此艰辛。 | 标签: 成长 | 5 |
| 霸王别姬 | 2017-07-02 | 声嘶力竭之后暴露的人性更让䟼 标签: 人性 哥哥 | 5 |
| 黑镜 | 2017-06-25 | | 标签: 英国 英剧 黑暗系 | 5 |
| 神探夏洛克 | 2017-06-25 | | 标签: 英剧 侦探 福尔摩斯 推理 | 5 |
+-----------------------+------------+------------------------------------------+----------------------------------------------+--------+
18 rows in set (0.00 sec)
已知bug:当一列中有两部相同的电影的时候获取元素会有问题,有时间在优化一下上述bug,再顺便写一下提供查找的方法