设为首页 收藏本站
查看: 1066|回复: 0

Linux Shell 脚本实现访问Gmail

[复制链接]

尚未签到

发表于 2015-10-26 09:16:39 | 显示全部楼层 |阅读模式
  记录一下自己学习linux shell 脚本命令如何处理web内容,这里尝试通过命令行访问Gmail,并从中读取一些关于邮件的信息,不用打开浏览器就能读取邮件信息。
  首先熟悉一下一下几个命令:
  1.cURL:
  用法:Usage:
curl [options...] <url>



  curl是利用URL语法在命令行方式下工作的开源文件传输工具.
它支持HTTP,HTTPS,FTP等协议,也支持包括cookie,文件下载,限制最大下载速度,制定下载文件的大小,指定用户代理(user-agent)(主要解决有些网页只能在IE中打开的问题),从网页中获取数据。
详细使用方法可以参考curl官网man帮助:http://curl.haxx.se/docs/manpage.html。
  2.tr:
  用法: tr [OPTION]... SET1 [SET2]


  tr即translate.可以实现字符把字符集合1翻译成字符集合2。例如:
  

brandon@ubuntu:~/shell/Chapter5$ echo &quot;123456&quot; | tr '0-9' '9876543210'
876543 #Encryption
brandon@ubuntu:~/shell/Chapter5$ echo &quot;876543&quot; | tr '9876543210' '0-9'
123456 #Decryption
brandon@ubuntu:~/shell/Chapter5$
  
  
  3.sed:
  用法: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
  sed即是 string editor.是一个很强大的文本处理命令,常和正则表达式结合使用。例如:
  

brandon@ubuntu:~/shell/Chapter1$ vim sed_test.txt
brandon@ubuntu:~/shell/Chapter1$ cat sed_test.txt
1.This file is used to test sed command.
2.test start.
3.test end.
4.test start again.
5.test end again.
brandon@ubuntu:~/shell/Chapter1$ sed '/^$/d' sed_test.txt
1.This file is used to test sed command.
2.test start.
3.test end.
4.test start again.
5.test end again.
brandon@ubuntu:~/shell/Chapter1$
  


  4.简单的正则表达式运用。
  


  下面是真正的脚本内容:
  

#!/bin/bash
#Desc: Fetch gmail
username='YOUR_USERNAME_HERE'
password='YOUR_PASSWORD_HERE'
SHOW_COUNT=6 # No of recent unread mails to be shown
echo
curl  -u $username:$password --cookie &quot;YOUR_COOKIE_CONTENT_HERE&quot; --silent &quot;https://mail.google.com/mail/feed/atom&quot; | \
tr -d '\n' | sed 's:</entry>:\n:g' |\
sed -n 's/.*<title>\(.*\)<\/title.*<author><name>\([^<]*\)<\/name><email>\([^<]*\).*/From: \2 [\3] \nSubject: \1\n/p' | \
head -n $(( $SHOW_COUNT * 3 ))
  
  注意有些可能要通过cookie验证才能访问,则要带上--cookie命令:进入邮箱后安F12,然后在Network中单击某一个Name path请求,然后找到cookie复制其后面的内容到YOUR_COOKIE_CONTENT_HERE,对于cookie我也不熟,不懂的可以google一下。
  命令tr -d '\n' 即删除换行符.
  命令 sed 's:</entry>:\n:g' 即将xml中</entry>元素用\n替换成换行符
  sed -n 's/will_be_replace_string/replace_string/p'中: 从原来的文本信息提取出自己想要的信息,然后按照想要的&#26684;式输出。 “\1“是第一个()中的内容,为<title>(.*\)<\/title>中的()所代表的内容及邮件标题。 &quot;\2&quot;即就是第二个()中的内容,”\3“即是第三个()中的内容。head -n &#20540;显示前面这几行(SHOW_COUNT*3)信息。
  


  下面是我自己运行后的输出结果:

brandon@ubuntu:~/shell/Chapter5$ ./Fetch_gmail_tool.sh
From: 数字时代 [cdtchinese@chinadigitaltimes.net]
Subject: 《中国数字时代》每日电邮 2014/10/19
From: YouTube [noreply@youtube.com]
Subject: PewDiePie: &quot;TRAINING TO BE COME THE BEST! - Anki Training&quot; and more videos
From: 数字时代 [cdtchinese@chinadigitaltimes.net]
Subject: 《中国数字时代》每日电邮 2014/10/18
From: 数字时代 [cdtchinese@chinadigitaltimes.net]
Subject: 《中国数字时代》每日电邮 2014/10/16
From: Google [no-reply@accounts.google.com]
Subject: Google Account password changed
From: 数字时代 [cdtchinese@chinadigitaltimes.net]
Subject: 《中国数字时代》每日电邮 2014/10/15
brandon@ubuntu:~/shell/Chapter5$





  



版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-130813-1-1.html 上篇帖子: 执行shell脚本中declare: not found 下篇帖子: Linux_shell编程基础_source命令和点命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表