自制 RSS 源抓取 osu! 用户动态

本文发布已超过一年,其中的内容可能已经过时。

由于有一些暂时解决不了的问题,所以这个暂停,想尝试这样同步的请谨慎。。。

想把 osu! 的动态同步到 twitter 但是官方没有提供 RSS 源所以一直都很纠结,推上有人在做同步,问了一下拿到这样的链接:

RT @ReitsukiSion : @AstroProfundis @Filine_niang http://hcg.im/osu24.php?id=你的osu UID ,以後你們就這樣告訴別人吧

但是这个是每次成绩都抓取出来的,如果我连着打几十遍不就有几十条推了么?肯定会被骂的。。。
在官网的用户界面上有 Recent Activity 一栏其实很合我胃口,只有进入谱面前100或者解锁成就才会出现在这个地方,所以如果只推这个地方的内容就可以避免刷屏+避免太差的成绩被触手们鄙视

于是扒开网页代码看,最后锁定了这样一个页面:
http://osu.ppy.sh/pages/include/profile-general.php?u=1588808
其中最后的那串数字就是uid啦,打开过后可以看到就是个人页面 General 一栏的纯内容版,然后现在就可以想办法生成 RSS 源了。

简单搜索过后看到了豆瓣上的这篇文章,于是去往 http://feed43.com/ 自己制作 RSS.
基本的操作在豆瓣那篇教程里面都有,我只贴一下我自己的过滤代码
因为页面上的内容是有重复的,所以我直接只抓取“显示更多”之后的内容。设置如下 Global Search Pattern:

之后再抓取出条目内容。设置如下 Item (repeatable) Search Pattern:

后面的都很简单了自己根据需要看着办就行,我是把动态内容放在标题方便给衣服脱脱脱同步。
简单说下过滤规则的语法。其实我也没看教程神马的,从豆瓣原帖和自己实验感觉到的是这样:

– 所有内容默认为纯文本匹配
– {%} 为取得变量,通过匹配前后的文本获得
– {*} 为跳过变量,通过匹配前后文本跳过某些可能变化的内容

目前知道的就这么多。

然后保存,获得源地址,然后就可以拿去随便用了,比如给衣服脱脱脱同步神马的~

另外需要注意一点,我这个过滤规则是针对高分榜成绩的,因为我的最近活动里面没有好友添加和解锁成就,不清楚对应的代码格式,所以应对这两种内容的时候有可能会出现错乱,等遇到了再调整了~

最后提供我的源供围观: http://feed43.com/2775451634715685.xml

{ 发表评论? }

  1. F娘 Google Chrome Windows

    _ (:3」∠)_其实我们只是用twitterfeed来定时发推,半小时或一小时里只有一次,也就是日常的Recent Plays (last 24h),最多5条还是不错
    而你这个调用的是榜单,如果Recent Activity没有信息的话就挂了,(´;ω;`)像我就有2-3个月Recent Activity没信息了
    还有就是你小看了Recent Activity信息,前1000名有排名显示,你掉升一名都要在Recent Activity上显示

    PS:俅俅你不要用reCAPTCHA…..

  2. 佳佳君 Google Chrome  Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36

    我在推特上看到很多人有一种长得差不多的osu状态推,你知道是肿么来的喵?像这样https://twitter.com/OwOcat/status/524580642311241728?s=09

回复 AstroProfundis 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注