用 scala shell 解决 Github Page 屏蔽百度蜘蛛问题

周末看了下谷歌对博客的收录的情况,发现很久没有收录了,看了下谷歌站长工具的分析,发现 post-sitemap.xml无法正常解析。自己访问了一下 http://ooon.me/post-sitemap.xml 浏览器报错,报错的位置有乱码,原来用的生成 sitemap 插件有问题,到 github issues 看到有人反馈这个问题,作者还回复了,坚决不改,意思是说 url 必须友好,中文标点就是不支持。。。

好吧,周末把所有的连接全部改成英文了,还好不多。。。

完事之后,突然想看看百度收录了没有,结果一条没有,后来得知 github 把百度的蜘蛛屏蔽了,不知道是不是因为上次的攻击导致的。去百度站长工具看了下文档,可以自己提交 link,于是就用 scala shell 实现了一个,自己用。

有需要的朋友可以把倒数第二行的地址改成自己的,非hexo的还需要修改sitemap文件的路径,然后放在博客根目录就可以了,每次执行scala baidu.scala

PS: 一天可以提交 500 条 link

#!/usr/bin/env scala

import java.io.PrintWriter
import scala.sys.process._
import scala.xml._

val files = List("sitemap.xml", "category-sitemap.xml", "page-sitemap.xml", "post-sitemap.xml", "tag-sitemap.xml")

// 函数式写起来真心舒服
val urls = files.map(i => s"./public/$i").map(XML.loadFile).flatMap(_ \\ "loc").map(_.text).distinct

println(s"found ${urls.length} links")
println("start committing to baidu")

val out = new PrintWriter("./urls.txt")
out.write(urls.reduce(_ + "\n" + _))
out.close()

"""curl -H 'Content-Type:text/plain' --data-binary @urls.txt http://data.zz.baidu.com/urls?site=ooon.me&token=???""" !

"""rm urls.txt""" !

- - - - - - - - End Thank For Your Reading - - - - - - - -