本文由【php学习特邀群】提供 看到很多盆友圈里分享的Python爬虫文章,感觉实在有点小儿科呢,内容处理那就是PHP的强项啊。虽然我也很讨厌讨论一门语言的好坏,每门语言存在就一定有它的道理,但是PHP是全世界最好用的语言,在座的各位没意见吧? 那会儿有个火极一时的多线程爬虫程序,抓取了老马空间几百万用户,其中几十万用户是有QQ号码、昵称、性别、年龄、所在地等信息的。不过,这算啥子嘛。
本文由【php学习特邀群】提供 我决定用php也来操作一番,我用php花了86400秒——1440分钟——24小时——一天的时间,也写了一个多进程爬虫程序,低调的抓取了知乎1000万用户。
本文由【php学习特邀群】提供 (这是一张用户详情的代码截图) 知乎是需要登录才能获取到关注者的页面的,所以我们从Chrome登录之后把cookie拷贝下来给curl程序模拟登录上去。(为什么要用Chrome呢?精简啊,给力啊)
通过以下步骤,我们就会得到这个用户列表 我们先以单个用户为起始点,抓取这个用户的关注者和被关注者入库。 因为是多进程,所以当有2个进程在处理同一个用户入库的时候就会出现重复,所以数据库用户名字段一定要建立唯一索引,唯一! 用户详情进程组 按时间拿到最先入库的用户详情,并且更新时间为目前时间,这样就会形成一个有趣的循环,程序会不停的跑,不断的获取用户信息。
本文由【php学习特邀群】提供 安安稳稳到了第二天;咦,怎么突然没有新数据了,检查了一番原来知乎改规则了,看来我的动作被发现了呢(给我返回的数据是图上这样的) 我感觉就是瞎乱的给我输出数据不让我采集;换IP、模拟伪装数据,都没用,嗦—好像有股熟悉的感觉
本文由【php学习特邀群】提供 gzip?我赶紧试了试gzip。把 “Accept-Encoding: gzip,deflate\r\n”;去掉了 gzip,然并卵,简直萌萌哒! 看来得使大招了—函数gzinflate 不知道大家了不了解,把获取到得内容加上: $content=substr($content, 10); $content=gzinflate($content));
本文由【php学习特邀群】提供 哎,PHP果然是全世界最好的语言啊,随便两个函数,就解决了问题,程序又了跑起来~ 凉风有性,秋月无边,亏我思娇情结,好比度日如年 ) 只是—— 我抓了它那么多用户,是要干嘛来着?
本文由【php学习特邀群】提供 算了有了这些信息,我也可以做一些别人开头闭口就乱吹一通的大数据分析拉~(不过好像还是闲的蛋疼) 最常见的当然是: 1、性别分布 2、地域分布 3、职业分布 4、年龄分布 看看人民大众都在关注点什么,社会、地理、政治有种众生尽收眼底的感觉呀,还不错嘛。 豁,我还可以这样啊! 把头像个拿来分析,用开源的验黄程序,把色情的筛选出来,说不定可以拯救东莞水深火热的人呐? |
| 本文出处: http://www.toutiao.com/a6462641362964578830/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|