获取豆瓣用户看过的电影名以及评分,短评,标签等

数据定向到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,再顺便写一下提供查找的方法

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值