成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我用爬蟲一天時間“偷了”知乎一百萬用戶,只為證明PHP是世界上最好的語言

開發 后端
聲明: 采集程序只做技術研究使用,切不可做出格的事以免惹來麻煩 首先感謝廣大網友的支持,現將源代碼公開,地址如下: https://github.com/owner888/phpspider 本程序所采集的數據都是知乎上面公開的數據,并未觸及隱私內容,也不公開數據庫,廣大網友無需擔心。 知乎還有很多不完善的地方,舉個簡單的例子:你關注一個人,卻無法實時知道他得動態(如果這個人是你喜歡的人呢?^_^),接下來我會用此程序改良出一個知乎關注者訂閱器,喜歡個哪人,那個人只要一有動態

看了不少朋友圈里推薦的Python爬蟲文章,都覺得太小兒科,處理內容本來就是PHP的強項,Python唯一的好處估計也就天生的Linux自帶, 和Perl一樣,這點覺得挺不夠意思的Linux,還是Mac厚道,天生就自帶了Python、Perl、PHP、Ruby,當然我也很討厭討論一門語言 的好壞,每門語言存在就一定有它的道理,反正PHP是全世界最好用的語言,大家都懂的^_^

    前幾天比較火的是一個人用C#寫了一個多線程爬蟲程序,抓取了QQ空間3000萬QQ用戶,其中有300萬用戶是有QQ號、昵稱、空間名稱等信息的,也就 是說,有詳情也就300萬,跑了兩周,這沒什么,為了證明PHP是全世界最好的語言,雖然大家都懂的^_^,我用PHP寫了一個多進程爬蟲程序,只用了一 天時間,就抓了知乎100萬用戶,目前跑到第8圈(depth=8)互相有關聯(關注了和關注者)的用戶。

爬蟲程序設計:

因為知乎需要登錄才能獲取到關注者頁面,所以從chrome登錄之后把cookie拷貝下來給curl程序模擬登錄。

使用兩大獨立循環進程組(用戶索引進程組、用戶詳情進程組),用的是php的pcntl擴展,封裝了一個非常好用的類,使用起來和golang的攜程也差不多了。

下面是用戶詳情的截圖,用戶索引代碼類似

這里插個題外話,經過測試,我的8核的Macbook,跑16進程的速度最快,而16核的Linux服務器,居然是跑8進程最快,這點有點讓我莫名其妙了,不過既然測試出最后進程數,就按照最好的設置就好啦。

1、用戶索引進程組先以一個用戶為起點,抓取這個用戶的關注了和關注者,然后合并入庫,因為是多進程,所以當有兩個進程在處理同一個用戶入庫的時候就會出 現重復的用戶,所以數據庫用戶名字段一定要建立唯一索引,當然也可以用redis這些第三方緩存來保證原子性,這個就見仁見智了。

通過步驟一之后,我們就得到下面的用戶列表:

2、用戶詳情進程組按照時間正序,拿到最先入庫的用戶抓取詳情,并且把更新時間更新為當前時間,這樣就可以變成一個死循環,程序可以無休止的跑,不斷的循環更新用戶信息。

程序穩定運行到第二天,突然沒有新數據了,檢查了一下發現知乎改規則了,不知是為了防我,還是碰巧,反正給我返回的數據是這樣的

第一感覺就是胡亂給我輸出數據讓我采集不到,換了IP、模擬偽裝了些數據,都沒用,突然感覺這個很熟悉,會不會是gzip?抱著懷疑的態度,試了試gzip,首先當然是告訴知乎不要給我gzip壓縮過的數據

把 "Accept-Encoding: gzip,deflate\r\n"; 去掉,然并卵!

看來知乎是強制要給我gzip壓縮數據了,既然如此,那我就解壓唄,查了一下php解壓gzip,發現就一個函數gzinflate,于是把獲取到得內容加上:

$content = substr($content, 10);

$content = gzinflate($content));

當然還可以用curl自帶的:

curl_setopt( self::$ch, CURLOPT_ENCODING, 'gzip' );

這里我真想說,PHP真的是全世界最好的語言,就一兩個函數,就徹底解決了問題,程序又歡快的跑起來了。

在匹配內容的時候,知乎的細心也是給了我無數的幫助,例如我要分清用戶性別:

    

哈哈開玩笑的拉,其實是樣式里面有 icon-profile-female 和 icon-profile-male ^_^

我蛋疼的抓了它那么多用戶,到底有什么用呢?

其實沒什么用,我就是閑的蛋疼 ^_^

有了這些信息,其實就可以做一些別人開頭閉口就亂吹一通的大數據分析拉

最常見的當然是:

1、性別分布

2、地域分布

3、職業分布,來自那個公司

4、每個職業的男女比例

5、大家一般在什么時候上知乎?發問題、關注問題,那些問題值得關注

當然,按照關注人數、瀏覽人數、提問數、回答數等排序,看看人民都在關注什么,民生、社會、地理、政治,整個互聯網都盡收眼底拉。。

也許,你還可以把頭像拿來分析,用開源的驗黃程序,把色情的篩選出來,然后去拯救東莞? ^_^

然后,你還可以看看那些大學出來的人,最后都干了什么。

有了這些數據,是不是可以打開腦洞 ^_^

下面是利用這些數據做出來的一些有趣的圖表,實時圖表數據可以去 http://www.epooll.com/zhihu/ 上看

責任編輯:王雪燕 來源: It event poll
相關推薦

2015-08-04 09:25:53

爬蟲PHP語言

2018-12-04 15:46:53

編程語言Python

2019-11-18 15:07:54

編程語言C#

2015-08-11 09:18:44

程序員最好

2022-09-19 21:34:04

PHPFacebook語言

2015-10-29 13:22:09

php數據分析爬蟲

2016-01-22 12:20:11

PHP數據爬取分析

2020-06-08 10:21:56

操作系統C語言Unix

2015-09-28 11:01:41

PHP開發抓取知乎用戶

2011-07-04 09:03:39

Web模版

2018-07-19 19:07:33

語言編程語言程序

2017-01-10 09:48:58

PHP語言Perl

2015-09-15 10:51:35

2013-04-24 09:57:08

Excel微軟

2017-04-05 08:41:49

2016-12-22 17:01:11

2011-05-24 10:25:21

2018-03-19 07:50:34

編程知乎框架

2013-09-12 15:39:30

編程語言BANCStar

2025-03-13 00:35:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97免费在线观看视频 | 成人在线视频免费观看 | 在线观看特色大片免费网站 | 欧美黄色一区 | 亚洲精品日韩一区二区电影 | 黄色片av| 91免费看片 | 亚洲福利在线观看 | 国产一级片久久久 | 一区二区在线免费观看 | 国产精品毛片一区二区三区 | jizz视频 | 免费看一区二区三区 | 伊人精品一区二区三区 | 国产精品久久午夜夜伦鲁鲁 | 亚洲欧洲中文日韩 | 欧美久久视频 | av一区二区三区四区 | 国产黄色在线观看 | 在线精品亚洲欧美日韩国产 | 国产精品一区久久久 | 欧美激情久久久 | www.一区二区三区 | 人人做人人澡人人爽欧美 | 中文字幕一区二区三区不卡 | av看片| 免费在线观看av | 日韩欧美一区二区三区免费观看 | 成人欧美一区二区三区在线观看 | 黄网站免费观看 | 性视频一区 | 在线不卡视频 | 国产欧美精品一区二区三区 | 精品国产乱码久久久久久中文 | 欧美精品一区二区三区四区 在线 | 久久激情视频 | 国产分类视频 | 雨宫琴音一区二区在线 | 老司机67194精品线观看 | 欧美精品一二三 | 国产高清视频一区二区 |