一次令人头秃的爬虫制作过程

朋友一直抱怨买不到口罩,有天看到smzdm上推荐还蛮多的,就打算搞个爬虫抓一下新闻可以第一时间去买,于是去亚马逊翻了两本爬虫的书,是的我以前不会写!其实也没有写过python!经过半天的学习我已经完全掌握了爬虫编写技巧(呵呵),于是就开工了。

一开始是用书上最简单的requests定位元素获取text来抓,但是只能抓首页第一页,smzdm是动态加载的也就是传说中的ajax技术,但是这样也很满足啦,毕竟是自己养大的,然后做了个比较,值-不值大于100就收,然而测试了一晚上也没有抓取到口罩的相关数据,why!大家都不喜欢口罩么!算了细节不必在意。

第二天告诉朋友你看这里有买口罩,朋友说抢不到,我emmm,那再做一个秒杀的爬虫,这次用书上最简单的selenium做,就是类似按键精灵的获取页面元素然后模拟点击,但是稍微高级一点的是它可以用无头浏览器,速度快一点。搞了半天搞完了突然想起一个问题,第一其实时间不太好控制,第二这跟我手点有啥区别?于是开始怀疑人生。

第三天打算重新爬smzdm,然后把秒杀也改成requests的,看了下源代码原来很好心的提供了json,这样直接读就行了连元素获取都不用,然后就遇到了一个新手很痛苦的问题,提供的json是个dict形式,我读出来就成了list?折腾了恨不能有两个小时才发现,它提供的确实是dict,然后dict里套了list,list里又是dict,只要做个循环读出来就行,我。。。。菜的一批。因为数据多了就多加了个收藏选项,值-不值>50和收藏>50的都读出来,然后发现了为什么之前没有爬到口罩的内容,因为大家都点了不值然后加了收藏。。。你们真行

然后是requests直接秒杀的部分,先打算搞考拉的,因为第一个搜到的秒杀是考拉,搞了半天发现考拉还挺难弄?浏览器抓不到它访问的地址,难道我还要抓包?可是懒得。于是去搞京东,但是京东直接提交cookies登录失败了,好难啊为什么这样对新手,想了想干脆用selenium做个通用秒杀,只要提供立即购买和结算这两个按钮的访问地址就行,又觉得做出来没有意义= -= 毕竟慢,要等页面加载。

啊,真是令人头秃。