在【R图秀】中,我们已经学会如何从网上抓取数据并进行可视化分析。为了刻意练习写R爬虫的技能,Rapp又专门推出【R爬虫】系列,和大家分享如何从网上自动获取你想要的数据。
在学习英语的过程中,相信很多人都有和我一样的感受:虽然花了很多时间和金钱,但是总觉得收效甚微,ROI(Return on Investment)很低。
我觉得学好英语和学好R语言有很多共同之处:
- 要找到适合自己当前水平的学习资料(过于简单是浪费时间,难度过大容易丧失信心)
- 广泛涉猎各种领域,用英语/R来解决工作和生活中的实际问题
- 坚持不懈地努力
根据以上几点,我在挑选英语学习资料的时候,设置了3个标准:
- 难度适中(客观地看待自己的英语水平)
- 题材广泛,趣味性强(开阔眼界,积累与老外聊(ba)天(gua)时的谈资)
- 短小精炼(可以利用5-10分钟的时间碎片来学习,容易坚持下去)
最终,我选择的是来自 BBC Learning English 的 6-Minite English:
http://www.bbc.co.uk/learningenglish/english/features/6-minute-english
bbc_homepage.png
这个栏目每周都有更新,而且每一期的文档(pdf)和语音(mp3)文件都可以免费下载。我们今天的目标就是用R来自动获取从2014年到2017年的所有pdf和mp3文件。
在动手写爬虫之前,我们需要浏览页面,确定需要获取的内容,并制订爬取策略。
6-Minute English的主页上有2014到2017年每一期(episode)的链接:
bbc_homepage_2.png
点击图片下方绿色的标题可以进入这一期的页面:
bbc_homepage_3.png
我们需要获取的目标链接就是页面右上方的 Download PDF/Audio
我们的爬取策略如下:
- 下载并解析6-Minute English的主页,找出所有episode的链接和时间信息
- 根据用户指定的起止日期,筛选出部分episode
- 依次下载并解析每个episode的页面,找到pdf和mp3文件的链接
- 下载pdf和mp3文件(首先判断pdf和mp3文件是否已经下载,避免重复下载)
具体代码和注释如下:
code.png
程序的输出:
output.png
提醒大家注意的是,在比较日期大小的时候一定要从字符型(character)转化成日期型(Date)。
今天的R爬虫就介绍到这里,大家学完了R爬虫,可别忘记学英语哦。如果不付诸行动,再好的学习资料也无济于事!
欢迎大家继续关注Rapp!
qrcode.jpg










网友评论