原因
作为一个理工科学生, 学校通常会有实验室安全考试, 在网上答题, 而且还有分数限制, 要是你没有多少分就不算及格那样. 要考试也就算了, 为什么还要限定校园网才能登录.
因为这些实验室安全考试
- 从来没有老师教过, 而且涵盖知识非常广. 电类, 消防, 化学, 医学什么都有
- 试题超级多, 100道题, 我们学校要求考90分以上才行(当初我考驾照科目一都用啦一个星期准备啊)
- 还好学校会总结一个题库给我们看(可是全部都是在网站上, 200个网页, 990多道题, 选择判断都有)
基于以上原因, 还有我今天第一次很认真做, 85分...差5分... 我真的不想再浪费时间
寻找漏洞
首先, 好处是学校总结了一个题库在网站上面, 就是说全部答案都已经有了, 但是学校这个慢的网站, 要是我全部看完所有题, 我要话费多少时间啊, (不要告诉我查百度, 网速慢的学校...)
然后看了几页那些题库网站, 它们的网址都是有规律的
就是后面page的数字发生改变, 呵呵, 那就是从1变到200, 200张网页...
思路来了
要是我把这些网站下载下来, 那么我就得到html文件, Linux下一切皆文件, 那我拿你里面的内容还不容易
以前一直听说Linux下的wget很强大, 但是其实除了看教程复制别人的命令, 自己还真没用过. 然后man查一下, 可以下载网页.
但是由于要下载的网页很多, 不可能自己手打. 假设我们要下载的网页是www.lalala.com/page=1, 最后面的数字是有规律变化的.
还好wget提供 wget -i urllist这条命令, 就是下载urllist里面所有的链接, 那就可以批量下载了
可是要怎么生成这些链接呢? 使用bash脚本!!!(不会要找google啊)
$ for i in \
seq 200`; do echo "www.lalala.com/page=$i" >> output; done这样就在output文件里面就生成了page=1到page=200的链接了 然后执行
$ wget -i output`下载所有网页, 200个网页!!!
每个下载好的网页里面都有这样的内容, 就是包含一些答案. 值得注意的是它的标签<div class="shiti">, 试题!!!, 写网页那个老师没有教过你打代码不要用拼音的吗?
然后用命令
$ for i in \
seq 200`; do grep -a <div\ class="shiti"> redir.php?catalog_id=6&cmd=learning&tikubh=2703&page=$i >> output ; done`
这样全部网页的这个标签里面的内容都输出到output这个文件里面了
之后就可以用文本编辑器的查找功能快速找到自己想要的题啦.
不断Ctrl + c 复制网上在线考试的题目
Ctrl + f 在文本编辑器查找
Ctrl + v 复制题目开始查找
结束
其实做一下这些题目还是学到很多东西的, 我只是想要告诉你们如何方便自己抓取题目学习而已.
今晚用到的wget 正则表达式, 很多都不会, 以后要好好加油学习!