今天是5.12號(hào)。
早上吃早餐老師打電話來問論文情況怎么樣了,自己支支吾吾說了最近只是在看相關(guān)的內(nèi)容,然后然后后面就全是被教育了。畢業(yè)不容易啊,真心覺得,可想而知要是讀博那就得要更長的時(shí)間。
其實(shí)這篇內(nèi)容主要與之前多進(jìn)程爬取58同城的內(nèi)容相似,其中再明確幾點(diǎn):
**1.如何導(dǎo)入和導(dǎo)出數(shù)據(jù)到MongoDB中? **
首先,不管導(dǎo)入導(dǎo)出都要在終端或者cmd中先cd到bin目錄下:
cd C:\MongoDB\Server\3.2\bin
然后導(dǎo)入和導(dǎo)出的方法分別如下:
導(dǎo)入:mongoimport --db study(數(shù)據(jù)庫) --collection tongcheng(表) --drop --file c:\xx.json
導(dǎo)出:mongoexport -d study(數(shù)據(jù)庫) -c tieba_apple(表) -o user/a.xls
這樣導(dǎo)出的a.xls文件會(huì)在bin這個(gè)文件下的user文件夾里。
但是并沒有想像的那么順利,導(dǎo)出到excel中后中文全是亂碼,可能是因?yàn)镸ongdb中是默認(rèn)是'UTF-8'編碼,而office軟件默認(rèn)是'GB2312'編碼,最后調(diào)試好長時(shí)間仍不行,只好直接將數(shù)據(jù)庫里的文件全部直接write進(jìn)文本,然后再用excel打開才解決。
2.如果一頁的詳細(xì)信息只有一個(gè)那么select()時(shí)就要是select()[0]再獲取相應(yīng)的信息。如果包含多個(gè)信息,則使用用zip()函數(shù)。
3.在爬取貼吧時(shí)直接select獲取不到時(shí)間和樓層等,因?yàn)檫@些信息放在標(biāo)簽里的相應(yīng)屬性data-field里,所以可以使用get('data-field')。
同時(shí)由于data-field是一個(gè)json格式的數(shù)據(jù),所以需要import json模塊,然后將json數(shù)據(jù)轉(zhuǎn)化為字典:例a=json.loads(...)
這樣可以直接用a['xx']['xx']來獲得數(shù)據(jù),[]中為相應(yīng)的key。
因?yàn)橹皇亲ト×薬pple吧中比較熱門的一個(gè)帖子,只花了不到一分鐘得到2568條數(shù)據(jù),數(shù)據(jù)清洗和整理花了很大時(shí)間,這才明白之前看文章都說數(shù)據(jù)清洗會(huì)占據(jù)主要的時(shí)間,最后分析結(jié)果描述如下:
(1)總共得到2568條數(shù)據(jù),但最后的樓層是3021,占比85.04%,而剩下有15%的樓層都是百度進(jìn)行推廣的廣告,不知道所有的百度貼吧里是不是都是這個(gè)比例。
(2)此外發(fā)帖的性別男女比例總體為1:1,說明并沒有說男生或者女孩更喜歡玩貼吧。
(3)從上面可以看到,PC占了3/4的比例,即相比較其它產(chǎn)品,貼吧這款產(chǎn)品人們還是更傾向于在PC端去瀏覽或者發(fā)帖。此外由于是在apple吧抓取的數(shù)據(jù),apple手機(jī)比例18.34%也比android要大,但這可能是取樣帶來的問題,并不能推斷總體上玩貼吧的人是用iphone較多還是android設(shè)備較多。
(4)本來還想統(tǒng)計(jì)發(fā)帖時(shí)間的序列圖,不過數(shù)據(jù)不好處理,只好放棄。