找到最适合自己的抓取方式,不论是Python, wget,curl, NodeJs, R ,随便你,开心就好(抓取的数据要有效率)
事情的起源是,someday,我发现了学校的一个网站有信息泄露了,背单词苦逼到几点我,好想日站。然而,我怎么能做这种有辱xx的事呢,好了借口找不到了,切入正文。
找到url, 构造类似与 xxx.edu.cn/xxx.jsp?tableid=yyy
由于我当时并不知道,到底1-yyyy之间有多少有用的,所以就直接把1-yyyy之间全抓了,而且傻逼的最开始并未考虑其中有的表页是空白。当时就用了几行代码,用的自带的wget,写了个循环了事。
1 |
|
这一次测试出了有哪些空白页,没办法数据不是可用的,输出的都是这样的
从图上就可以看出最小的是1026字节,于是乎稍加修改可以得到这样的结果,url全是验证过的具有内容的。
然后就可以简单的抓下来网页,顺便截个图。
截图是用的phantomjs ,当时怕要是自己分析不好,先拿个一眼能看的数据备份一份下来。(在zsh中安装Phantom之后可能无法直接使用,要切换回bash才行)
1.截图的js代码,参考官网,不过当时测试时,怕截不完整,查了下资料
1 | var page = new WebPage(), |
然后就是配合一个极为简单的shell脚本,循环一下,wget到全部。
1 | cat usefulurl | while read line |
这里发现如果你是url新建的是url类型的文件夹,他会建连续一串嵌套的文件,针对这里抓到的截图文件
其他的则是正常的
其实呢,针对我这个地方的抓取,用R是更加的方便的,通过rvest包,可以很方便的将获取所有表格。虽然我并没有采取使用R的方法,一开始写的python脚本,也是循环get数据,但是并不如wget更好使。本来打算一次性放在这篇里面,但是有点累了,决定把另一半放到下一篇再写。另外抓这个的时候还是很兴奋的,一连搞了一天多。还有我的好朋友,谢谢你。