R爬虫项目结构解析

2017-12-18  本文已影响0人  飘舞的鼻涕

最近完成了一项简单的静态爬虫任务,麻雀虽小五脏俱全,借此梳理下R项目基本架构
注,有疑问 加QQ群..[174225475].. 共同探讨进步
有偿求助请 出门左转 door , 合作愉快

基本架构

  1. R 脚本
    R程序可以是单一的完整运行代码文件,也可以是多个相互间协调或调用的函数/程序代码集,本文介绍的主要是第二种
  2. Powershell 调用

通过 windows 的 powershell 终端调用 R程序, 实现 R程序 的后台运行

xx/xx/Rscript.exe xx/xx/run.R
run

也可以编辑 .bat文件,然后保存双击 .bat文件就可以了

xx/xx/Rscript.exe xx/xx/run.R
bat1
  1. Linux终端调用与此类同

终端运行

chmod u+x ./run.R
/usr/bin/Rscript  /xx/run.R

或 run.R 首行添加 line1, 然后终端运行 line2,3

#!/usr/bin/Rscript
chmod u+x ./run.R
./run.R

R 脚本

本案例是个静态爬虫项目,大致涵盖以下几个流程:

  1. 获取爬取目标
  2. 爬取
  3. 爬取结果分段存储
  4. 分段结果合并及碎文件删除
  5. 根据结果中信息进行二次爬取
  6. 二次爬取结果存储


    files

1. 确定爬取目标

爬取目标可以是个单一网址也可以是个目标list
比如通过动态查询获取与某主题相关的网页地址list(get_addr.R)

2. 爬取和分段存储

爬虫最重要的部分就是爬虫代码的编写,个中辛酸自己体会,大有阿庆嫂大战刁德一的意思,码完code之后还得测试(大部分网页代码都不那么规整),时不时会如下所示


err

为了节省内存及防止程序半路崩溃而前功尽弃,可以设置分段保存(每爬取n条存储一个本地文件),以求最大限度保存胜利成果

3. 合并并清空分段文件

爬虫程序运行完毕,需要将分段文件合并成最终的结果集,然后将无用的分段集清理,如下所示


parts1

4. 组织协调的 run.R

最后看看 run.R 里的代码结构


run.R

总结

一个完整的项目下来,R是需要很多自定义函数支持的,这些自定义函数可能结构复杂(可以定义2级函数支持1级函数的调用)代码行数较多或会被多次调用,这个时候我们就需要将他独立出来作为一个功能模块或对象来使用.
这样的项目梳理出来,就会结构清晰,便于理解和后续个性化修改

Reference:

上一篇 下一篇

猜你喜欢

热点阅读