注:以下代码只能在linux下运行

引言

之前看到github上ruanxingzhi dalao的bzojch(BZOJ离线版)项目觉得很厉害,把bzoj的题目全部都爬到本地了,虽然没有数据但是也让我们这些蒟蒻能看权限题了。

显然我们需要一个爬虫来把网页爬下来。

对于python我是一无所知,所以我选择了linux的shell。

运用ubuntu自带的wget工具来下载

代码

非常简单的代码:

代码中写好了注释,所以代码是什么意思我就不讲了。

爬虫虽然短,但是功能强大,能把题目爬取下来,而且还能把题目的图片爬取下来,再把那些指向原图的图片链接指向本地。

具体用法:

先把上面的代码写到一个shell脚本中去。

比如先新建一个文件:get_bzoj.sh

然后用gedit编辑那个文件,把上面的代码复制进去,保存。

然后在get_bzoj.sh所在的目录中打开终端,执行:

然后再执行命令:

就发现我们打开了爬虫,要求输入bzoj的用户名和密码,也就是你在bzoj上注册的用户名和密码。

这里要注意,如果要爬取权限题,你需要用权限号登录。

然后就开始愉♂快地爬取题目啦!

你会发现get_bzoj.sh所在的目录下出现了一个叫做www.lydsy.com的文件夹,里面有个叫JudgeOnline的文件夹,打开里面就有很多网页,格式都是:problem.php?id=????这样的,那么你把????改成你想看的题的题号就行啦!

具体自己琢磨吧。