美文网首页
R爬虫项目结构解析

R爬虫项目结构解析

作者: 飘舞的鼻涕 | 来源:发表于2017-12-18 11:58 被阅读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:

    相关文章

      网友评论

          本文标题:R爬虫项目结构解析

          本文链接:https://www.haomeiwen.com/subject/ibopwxtx.html