从2014年二月开始打算写一个爬虫,至今天初版已经差不多实现了。
由于拖延症和不愿意直面困难的懦弱,花了半年的时间才把这么简单的一件事情给实现,
确实学习到了不少东西,值得一写。
13年下半学期由于电子商务和分布式课程接触到了互联网的基础知识,
于是在14年上半学期开始的时候决定去写一个爬虫,
由于同时想入门python,所以研究了一下就决定使用scrapy这个框架,
最开始配置环境
后来用了几天看了scrapy的基本使用方法并且实现了静态页面解析
不了解xpath于是跑去学xpath
学完xpath之后就基本实现了对静态网页的解析了
后来打算爬评论的时候发现是ajax,
又决定去学ajax
这个时候就犯了一个非常严重的错误,
由于对看了ajax的使用方法之后没什么头绪反正就是把爬虫这个事情搁置了(直接反映了我这个人真的一点困难都没法解决)
后来就去学django搭博客虽然一直搭到现在都没搭出来
因为搭博客所以看了看前端然后又每天玩bootstrap玩的不亦乐乎但是还是写不出什么正经东西
想和许可一起出国于是报了GRE然后花了不少时间在所谓的准备GRE上最后考的跟shi一样断了出国的想法也浪费了很多时间
又去学算法公开课虽然因为某一次没有及时提交作业被扣了百分之五十的分就再也没去学了
后来去看高数打算提高智商然后因为发现智商真是没救了于是又搁置了
再后来?
再后来许可就生气了╮(╯▽╰)╭
回忆了一下这段时间过得确实很浪费时间
说是在干正经事可是都是东玩一下西玩一下一旦遇到了困难立刻撤退
反正不会的东西那么多,这个入门了学那个完全没有问题!
但是大三快结束了
再不弄点东西出来的话。。就真的废了。。
所以要从第一个坑开始填
又打开命名叫firstscrapy的工程继续写爬淘宝
这个时候大三的考试已经结束了
我也找到了一个实习
当然在面实习的时候由于不要脸写了自己写了一个淘宝爬虫
所以被问过很多次关于淘宝爬虫的事情
讲到ajax那里时都被问到我打算以后怎么爬ajax
现在再想起来真的好想撞墙QAQ太尼玛丢人了!!!
我说的是:看js
卧槽我是傻逼吗!!!
卧槽那群面试的人居然就不动声色也不提醒我一下!!!!
实际上后来我确实也就这么做了╮(╯▽╰)╭
开始小学期的时候离实习只差一周了所以我就只有一周的时间实现爬虫
我看了半周的js(捂脸
还拖着实验室前端大神李大神跟我一起看QAQ
先用chromeF12找发的查询串(到这里我居然还没有意识到什么!!!)
然后写了个脚本找js里面的callback
找到了,然后。。就没有然后了。。
js全是加密过的怎么看啊!!!!!!!!
不。。我真的看了=。=
我看了一天的js
得出的结论是:换条路走吧
然后就尝试了模拟操作的splinter,和一些其他的模拟浏览器的框架
总是不太满意(我觉得是因为splinter这个框架的文档太渣了的原因。。)
又重头开始继续看网页。。
然后就出现转机了
在跟实验室一个很好玩的学弟讲这个问题的时候正在逛北邮人论坛
然后学弟就提建议说可以去算法版问一问
并且告诉我有人问过这种类型的问题的
看完之前那个帖子之后(帖子里面主要建议几乎全部都是模拟浏览器操作,看来我真的是选了一个不太好的路。。
就联系了唯一一个说看调用的接口是blabla的所以可以改掉传过去的参数之类的人
跟他讲了一下我的想法
然后他问我,为什么要看js?不需要看js啊~
卧槽=。=|||
我好蠢QAQ
我瞬间就知道了。。。
妈蛋我都看到了request的header了!
就可以直接发过去了啊捂脸QAQ
哭了。。。
好了然后这个问题就结束了。。。
我就写完了爬虫
其实上这个爬虫我真正有效果的工作就是
1,环境搭建
2,静态页面提取
3,ajax处理
感觉现在让我写一天就能解决了QAQ捂脸。。
我真的。。动作太慢了。。
感想大概是:
首先,独学而无友,则孤陋而寡闻,如果后来不和别人探讨这个问题可能我就看一辈子的js了
然后,我真的太蠢了,没有能够把学过的知识运用到实际编程中的能力……
再然后,生命太短暂我要快一点写代码不然就写不完了OTZ
最后,特别特别感谢许可,在整个过程中我们争吵了好多次,但是不是因为你我也完成不了这个坑。
以后的坑的填满就拜托你了。
虽然你也什么实际的都没做←←
差不多就是这样,下阶段解决淘宝封ip和加一些必要的差错处理,把程序工程化发github,以及写一个界面出来或者和django结合到一起去。