前两天总结一下邮箱格式的正则表达式,写了一个脚本来判断输入的邮箱地址是否符合邮箱的格式(有兴趣的朋友可以翻一下我的博客去看一下)。在网上找资料的时候,发现基本都是用Python和Java来做爬虫,当然Python的居多。本着学习的心态,既然得到了邮箱地址有效性的判断,那就顺便用脚本写一个抓取网页邮箱的爬虫吧。

豆瓣上着了一个网页,是一个人发起了一项活动,让大家留下邮箱,然后和陌生人进行邮箱通信,增加温暖。(也是很感性呢),不过现在的人们越来越离不开手机了,在这个活动中也许能找到以往那种陌生的温暖呢。网页网址是:https://www.douban.com/group/topic/41562980/?start=0。大家可以进去看看,也可以参加进去,离开手机一会。

找到网页之后,下一步就是写脚本了。

脚本解释:

第5行:www是获取网址,把含有邮箱地址的网址输入。

第6行:用curl来抓取网页内容,并下载到文件2data.txt里面。

第7行:取得上一步文件的所有行数,方便做循环。

第8-11行:这个For循环就是遍历所有行,并且把包含邮箱的行重定向到文件1return.txt里面。其中:sed是打印指定的行,egrep是过滤出包含邮箱地址的行。为什么用egrep而不用grep呢,有兴趣的朋友参考我的博客,Linux shell验证邮箱合法性。

执行之后,给大家看一下那两个文件:

为了保护隐私允许我自行打码。

暂时初步拿到了邮箱,但是含有邮箱的文件里面还是好多东西,我们可以进一步的清理。观察发现,包含邮箱的行基本都是

邮箱地址。。。,我们可以通过sed命令把邮箱地址前面的

给删除,怎么来做呢?

可以看到,大部分邮箱前面的部分给清理掉了,但是我们还发现后面还有好多是

结尾的,然后我们可以再一次使用sed命令把后面的部分删除(其实这一步是可以和上一步通过管道|命令一次执行的)。

当然上述步骤只是清理大部分内容,还有些则是需要人工干预的。经过一番努力,最后就可以得到你期望的邮箱地址了。

格式完美,于是我想我也要给这些人发邮件,传递时间陌生人之间的温暖,于是把文件通过Samba共享(下次更新Samba共享)到Windows里面去了。打开之后我就纳闷了,效果如下:

在Linux下明明是一行行多么整齐,怎么到了Windows就成了一行了呢?后来经过查阅资料发现,原来是因为Linux和Windows下文件换行的符号是不一样的,Windows下换行是"\r\n",而Linux下是"\n",Mac下是"\r"。所以在Windows下打开Linux系统的文件只显示了一行。

那怎么让才能让windows下打开Linux的文件正常的显示呢?

我们可以通过一个命令转换一下就可以了,那就是unix2dos:将具有unix格式的文件转换为Windows下的格式。这个命令还有一个双胞胎弟弟:dos2unix:它的功能和哥哥的功能正相反。

命令格式:unix2dos(dos2unix)[-kh]oldfile       newfile

-k 保留源文件的mtime(使用这个选项后面不用加newfile)

-h 保留原来的旧文件,并将转换后的文件输出到新文件

如果Linux上没有这个命令,安装一下就可以了:yum install -y unix2dos.

安装好之后开始转换:

转换之后的效果:

这样就看着舒服多了呢。

总结:Linux shell脚本呢主要用于监控运维,当然从上面来看爬取网页其实也是蛮简洁的,只需要几行代码就OK了,但是后续的处理可就稍微复杂一些。往后学了Java和Python之后,然后再写一下Java和Python的爬虫对比一下。对爬取邮箱做个全面的总结。今天就到这了,明天总结Samba下Linux和Windows的文件共享。

linux shell 豆瓣,用Linux shell脚本爬取豆瓣邮箱相关推荐

  1. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

  2. python如何爬取豆瓣_Python实战之如何爬取豆瓣电影?本文教你

    爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...

  3. python爬取豆瓣电影并分析_Python爬取豆瓣电影的短评数据并进行词云分析处理

    前言 对于爬虫很不陌生,而爬虫最为经典的案例就是爬取豆瓣上面的电影数据了,今天小编就介绍一下如果爬取豆瓣上面电影影评,以<我不是药神>为例. 基本环境配置 版本:Python3.6 相关模 ...

  4. python豆瓣历史评分_Python实战-爬取豆瓣top250评分高于指定值的电影信息

    思路 1. 要获得怎么样的数据 2. 找到数据来源 3. 模拟浏览器发送请求获得数据 4. 处理数据,保存数据 第一步: 在这里数据是豆瓣top250中高于指定分数的电影信息 信息有:名称,评分,格言 ...

  5. python爬取豆瓣电影信息_Python|简单爬取豆瓣网电影信息

    前言: 在掌握一些基础的爬虫知识后,就可以尝试做一些简单的爬虫来练一练手.今天要做的是利用xpath库来进行简单的数据的爬取.我们爬取的目标是电影的名字.导演和演员的信息.评分和url地址. 准备环境 ...

  6. python爬虫爬取豆瓣_爬虫,从爬取豆瓣开始

    1 爬虫概述 当初第一次接触python,听的最多的就是爬虫爬虫,搞得我一脸蒙蔽,因为我从来都没听过这么新颖的词,而且我还天真的以为是不是python长得像一条小虫子,所以才叫爬虫. 直到后来经过不断 ...

  7. python爬豆瓣电视剧_python requests库爬取豆瓣电视剧数据并保存到本地详解

    首先要做的就是去豆瓣网找对应的接口,这里就不赘述了,谷歌浏览器抓包即可,然后要做的就是分析返回的json数据的结构: https://movie.douban.com/j/search_subject ...

  8. 爬取豆瓣评论连接mysql_Python3.5爬取豆瓣电视剧数据并且同步到mysql中

    #!/usr/local/bin/python#-*- coding: utf-8 -*-#Python: 3.5#Author: zhenghai.zhang@xxx.com#Program: 爬取 ...

  9. python怎么爬取电影海报_python脚本爬取豆瓣top250电影超清海报原图

    代码亲自试了一下,速度取决于网速,简单的贴一下代码好了,有什么问题可以留言.思路可以看一下[视频介绍]: https://b23.tv/h508v3 -- coding: utf-8 -- impor ...

最新文章

  1. python安装pip_Python的pip安装总是失败怎么办?
  2. linux 内核load addr,linux2.4启动分析(1)---内核启动地址的确定 vmlinux LOAD_ADDR ZRELADDR...
  3. java gui中文变方块_我的世界Java版 20w48a 发布 添加滴石和尖滴石
  4. 云原生时代,阿里云联手博睿数据让IT运维可观测更智能
  5. python queue模块安装_Python -- Queue模块
  6. python学习与数据挖掘_python机器学习与数据挖掘
  7. Linux C语言操作SQLite数据库
  8. Halcon 二维码
  9. AdapterView.AdapterContextMenuInfo
  10. Vivado ML 2021.1 环境安装
  11. 【中国互联网江湖30年历史】再无风清扬,再有少年郎
  12. 什么是《现代 JavaScript 教程》?
  13. android平台支付宝快捷支付
  14. python人名统计_「姓名分析」Python|美国婴儿姓名分析 - seo实验室
  15. getAddrInfo与DNS域名解析与ping
  16. 学习英文-学以致用【场景:程序员英文-开发环境】
  17. 在SQuAD2.0榜单上出现过的部分模型详解StructBert,T5,RoBERTa,RetroReader,ALBert
  18. python中θ符号怎么打出来_利用python打印特殊符号
  19. 2017-美团大众点评-安全工程师A/B卷
  20. 汪子嵩:论有、存在与是(如是——真如)

热门文章

  1. Delphi用ini文档实现界面无闪烁多语言转换
  2. SQLPLUS 使用的一些技巧
  3. shell下数字和字符串比较操作命令
  4. 控制台应用程序换换为窗体应用_Epic为开发者设计了一套iPhone使用的运动捕捉应用程序...
  5. Android 6.0 源代码编译实践
  6. pdo-mysql_PHP: MySQL (PDO) - Manual
  7. 家装强电弱电布线图_关于你不知道的弱电改造详解 提早了解好做准备
  8. [转载] Java复制对象与集合工具类
  9. 如何在React Native中使用React JS Hooks?
  10. linux oracle删除恢复数据恢复,Linux下Oracle误删除数据文件恢复操作