一种基于在线发帖和远程脚本的云抓取的实现方案

By podcast at 2018-02-17 • 0人收藏 • 901人看过

前情提要:

种种原因群主关机了, 然后, 值此苟年新春佳节之际, 群主用苟重写了本地版"国产坑爹广播工厂数据提取器", 但本地版弊病明显, 不仅需要手动更新, 而且更新节目后上传论坛, 链接不一样.

且不论技术条件, 单说专门为了听一点节目, 就买个服务器, 显然太浪费了. 

只要脑洞大, 善于利用网上的免费服务, 就能省很多钱. 本方案通过一种巧妙的方式, 实现了包括定时抓取, 订阅链接刷新等"听广播"一条龙基础服务.


条件 (假设你已经):

  • 有 github 账号

  • 会用命令行


简易流程:

  1.  占坑, 在"在线剪贴板"中创建自己的地址, 作为广播订阅地址

    1. "在线粘贴板" 特指 http://ptpb.pw/ 或他小弟, 包括不限于: http://fars.ee/ ; http://pastis.knacki.info 等

    2. 命令行输入 curl -F c=@file.xml https://ptpb.pw/~hehe

      1. file.xml 名字和内容都不重要, 因为只是为了方便在该网站上占个坑.
        (但不能是不存在的文件, 所以别照搬)

      2. ~hehe, 别照搬, 自己取名字. 前面必须有波浪~, 后面不必跟 xml

    3. 看图中例子,  "status: created" 表示占坑成功
      image.png
      只管最后两行, url 是你将来订阅广播的地址,
      而uuid类比于密码, 凭借它才能修改和删除"帖子", 妥善保存哦

  2. 远程抓取节目数据&上传更新订阅源. 在 github fork 该仓库到你家, 并且把"demo.sh"中的喜马拉雅专辑ID, 本地缓存文件名, 都修改成你想要的. 

  3.     根据这个帖子说的1. 2. 两步, 在 travisci 中激活你家 github 仓库. 
        再跑到仓库设置中 (如图) , 添加你此前记录的帖子识别码 (在 Environment Variables > PBUUID 处添加) 
    image.png

    在截图最下面一行啦, 那几个"ON, OFF"开关随便, 不影响


  4. 好了手动运行一下, 试试效果
    image.png
    右边点这个.
    如果顺利, 过一会儿发现抓到并上传到位了


           

  5. 设置定期更新(新节目). 设定方法看图


从此, 你不必再操心于抓取更新本电台订阅, 只因免费的在线服务, 在后台帮你完成了一切. 
王子和公主, 也幸福的生活在了一起.


依本帖流程, 制作的示例(https://ptpb.pw/~2018-sfcy.xml)     


别的事情:


截止发帖前, 只有喜马拉雅, 没有抓别厂的软件.
现在有三巨头了, 详见二楼

想从别的厂抓? 得找群主 zhi.miao.li.


上述流程第2步, 只管照搬我的仓库, 原想解释这些脚本文件内容. 发现好像没必要.

给心怀背景知识/探索精神的人:
建议同厂的多个电台, 用 bash 数组, 

建议根据不同厂, 开git分支, 按分支分开运行, 以避免"魔高一丈"影响历史的进程; (比如小李以前抓了网易云再抓考拉, 结果网易云某天"魔高一丈", 导致整个抓取过程异常退出, 影响了抓考拉. 而如果按分支, 就可以清楚看出变绿的分支没毛病, 变红的分支表示完蛋)

"在线粘贴板"开源, 可以自搭; 

平台不局限于 github+travis-ci 组合.
其它诸如 gitlab.com 和 bitbucket 也自带了"免费给你临时开台服务器"来抓节目数据的平台;


致谢:

群主 zhi.miao.li 苟年发明了抓获电台数据的苟轮子 


--------------

更新: 

批量抓取上传, 请参考 ./multi.sh

其中 travis 保存识别码的变量名, 要相应地改成 PBUUID0, PBUUID1, ...

3 个回复 | 最后更新于 2018-02-18
2018-02-17   #1

我天,这教程好专业,第一遍没看懂,明天再研究

2018-02-17   #2

我更新了一下喜马拉雅的linux抓取程序

https://pan.baidu.com/s/1eSVqU7w

同时添加了荔枝和蜻蜓FM的。另外程序是直接输出的,默认不输出问题,所以demo.sh的应该可以用一行解决。


这个实现方案很聪明

2018-02-18   #3

这个在线粘贴板 ..能不能提供以下网址

登录后方可回帖

Loading...