点我
点我
文章目录
  1. 实现方法
  2. 1 准备条件
  3. 2 初始操作
  4. 3 搭建博客
    1. 3.1 搭建github pages
    2. 3.2 添加gitcafe的ssh公钥
      1. 3.2.1 查看本地公钥
      2. 3.2.2 添加公钥到gitcafe
    3. 3.4 同步博客到gitcafe
  5. 4 配置域名
    1. 4.1 修改域名注册的解析服务器
    2. 4.2 修改dnspod解析记录
    3. 4.3 添加github的CNAME文件,添加gitcafe自定义域名
  6. 5 总结
  7. 友情链接

解决 Github Pages 禁止百度爬虫的方法

update:因为gitcafe在5月31号就关闭了,所以要将文章中的gitcafe换掉,我重新写了一篇,在这里解决 Github Pages 禁止百度爬虫的方法2–从gitcafe迁移到coding.net

最近,我的github student package里面送的一个namecheap域名终于下来了.That is to say:我终于有自己的域名了,这就是我的域名http://bblove.me,欢迎来访.

有域名以后,就在想办法解决百度爬虫的问题.

1
2
3
4
5
6
7
8
9
10
Hi Jackroyal,

We are currently blocking the Baidu user agent from crawling GitHub Pages
sites in response to this user agent being responsible for an excessive amount
of requests, which was causing availability issues for other GitHub customers.
This is unlikely to change any time soon, so if you need the Baidu user agent
to be able to crawl your site you will need to host it elsewhere.

Cheers,
Scott

这是我之前跟github反映百度spider无法抓取我的github pages,他们给我的回复邮件.也就是说他们把百度spider给禁掉了,桑不起.
直接说解决方法:
把博客同时发布到github pages和gitcafe pages.然后使用dnspod设置域名解析,国内线路解析到gitcafe,国外线路解析到github.

实现方法

1 准备条件

一共需要一下这几个东西:

  • 一个github账户
  • 一个gitcafe账户
  • 一个dnspod账号
  • 一个域名
  • github for windows(或者git客户端也行)
    没了,就这么多就行.

2 初始操作

我们在github和gitcafe上面把自己的博客搭建起来,首先要建仓库.
github:
首先登录你的github,然后新建一个公共仓库,仓库名是你的用户名加上yourname.github.io,如下图所示,我的用户名是Jackroyal
github新建仓库

gitcafe:
操作方法差不多,不过有点区别是,gitcafe新建的公开项目,是和用户名一致的,比如我的用户名是Jackroyal,那我新建的仓库名就是Jackroyal

仓库新建成功后,你获取到的链接应该是类似下面的

1
2
https://github.com/Jackroyal/Jackroyal.github.io.git
https://gitcafe.com/Jackroyal/Jackroyal.git

这就是你的两个page对应的仓库.

3 搭建博客

3.1 搭建github pages

当你的仓库建好了,我们就开始搭建博客,因为之前的博客有写,具体过程就不赘述安装和配置hexo 3.0.

按照上面的教程一步一步,就能搭建好博客,然后你就可以访问你的gihub pages了,访问链接就是http://yourname.github.io,比如我的即使http://jackroyal.github.io.
现在我们开始搭建gitcafe上面的pages了.由于hexo现在已经支持多发布,所以很简单,我们只需要配置deploy的信息,修改_config.yml.添加gitcafe的仓库信息.我的修改结果如下,

1
2
3
4
5
6
7
deploy:
- type: git
repo: 'https://github.com/Jackroyal/Jackroyal.github.io.git'
branch: master
- type: git
repo: 'https://gitcafe.com/Jackroyal/Jackroyal.git'
branch: gitcafe-pages

尤其需要注意的是,两个的branch是不同的,github默认分支是master,gitcafe默认分支是gitcafe-pages.

3.2 添加gitcafe的ssh公钥

由于我使用的是github for windows的终端界面,也就是github官方提供的客户端,他的好处是,我使用github的时候,不需要配置ssh公钥,密钥之类的东西.如果你用的不是这个,用的是git的客户端,那就需要配置ssh公钥,参考这里github配置公钥.
对的,你猜到了,我们现在需要配置gitcafe的ssh公钥,因为github for windows会自动帮我们上传公钥,gitcafe就只能手动了.

3.2.1 查看本地公钥

我们打开你使用的git终端,首先切回用户目录,然后进入.ssh目录,里面就有公钥和私钥,如下图所示
使用git客户端查看ssh公钥私钥
使用github for windows查看ssh公钥私钥
我们就是要读取后缀是.pub的那个文件,比如我的读取命令就是cat github_rsa.pub,执行结果如下
查看公钥

3.2.2 添加公钥到gitcafe

我们在这里来设置gitcafe的公钥.
PS:需要注意的是,公钥后面的chen@chen-pc是不需要的,我的带上以后,gitcafe说是公钥非法,不过不怕,gitcafe会帮你正确格式化
正确的ssh格式
反正就是把公钥加上去,就ok了

3.4 同步博客到gitcafe

上面的配置好了以后,我们就可以把博客内容同步到gitcafe了,方法很简单,执行

1
hexo d -g

然后就可以啦.

4 配置域名

首先你得有个域名,像我一样,哈哈.

4.1 修改域名注册的解析服务器

我们在要把域名解析服务,设置到dnspod,因为他是国内的,而且服务很好.我们登录自己的域名管理后台,选择对应的域名进行管理,然后找到nameservers的设置,如图所示
修改nameservers的设置
修改的值是

1
2
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net

常见的域名注册商修改到dnspod,官方提供了教程,看这里-
改完以后可能要等一段时间才能生效,最多72小时
ok,改完以后,这边就完了,我们登录dnspod

4.2 修改dnspod解析记录

我们登录dnspod,然后添加域名
如果4.1中的设置生效了,你的域名就会添加成功了,我们直接进行下一步,修改解析记录,上图
dns解析记录
我们一共添加了5条记录,其中一条泛解析和www解析是针对国内的,所以执行gitcafe;2条泛解析和www解析是针对国外的,所以指向github.
就是添加

1
2
3
4
5
@       A      默认  192.30.252.153
@ A 默认 192.30.252.154
@ CNAME 国内 gitcafe.io.
www CNAME 默认 jackroyal.github.io.
www CNAME 国内 gitcafe.io.

其他设置项目默认就行了,上面的配置完了,如果你走国外ip访问你的域名的话,会出现404,因为我们还差一步.走国内线路访问一样会出错,都是没绑定的结果.

4.3 添加github的CNAME文件,添加gitcafe自定义域名

现在只差最后一步了,我们先来配置github的CNAME文件,官网有个教程配置CNAME文件.说白了,就是在你的网站根目录,添加一个名为CNAME的文件,里面的内容就是你的域名

1
bblove.me

没有任何多余的信息,如下图
配置github的CNAME
上面的配置现在访问没问题,但是你一重新发布博客,就需要重新手动添加CNAME文件,太麻烦.
一劳永逸的方法,在你的hexo目录下的source目录中,新建一个CNAME文件夹,然后他每次在你发布博客的时候,都会在你的网站根目录生成一个CNAME文件.
添加CNAME的目录结构
现在github的配置彻底结束.

接下来配置gitcafe:
1 我们在gitcafe的项目主页,点击项目设置,如下图(之所以截图,是因为我找半天才看到…)
gitcafe点击'项目设置'
2 然后我们点击pages服务标签,然后添加自己的域名,这些域名是我们之前在dnspod中设置了解析的
gitcafe配置自定义域名

彻底打完收工了

5 总结

总算写完了,写到这里,我一共写了,141行了,写了个把小时.这次主要参考了下面的几篇文章,都写在友情链接里面了.参考了他们的思路,因为他们的方法里面需要自己单独购买vps或者购买CDN,共同的问题是增加了开销,买vps会导致你每次写博客都需要单独发布一次到vps上太麻烦.我后来在网上看到gitcafe也有gitcafe pages服务,如果用这个来处理的话,一来,不会增加多余的开销,他们都是免费的;二来,由于hexo对于多部署的支持,多部署很简单,一次配置,以后就可以不用理会了.
ok,收工

友情链接

1 解决 Github Pages 禁止百度爬虫的方法与可行性分析
2 利用 CDN 解决百度爬虫被 Github Pages 拒绝的问题
3 gitcafe官方文档–pages服务
4 gitcafe官方文档–配置ssh公钥

支持一下
扫一扫,试试看
  • 微信扫一扫
  • 支付宝扫一扫