1. 程式人生 > >pyhton專案和晉江文學城資料分析專案

pyhton專案和晉江文學城資料分析專案

 1.圖書管理系統

 

 

 

圖1.圖書管理系統(作者資訊列表頁面)

 

 

 

 

圖2.圖書管理系統(作者資訊修改頁面)

 2.個人部落格網頁設計

 

 

圖3.部落格(我的日記-->個人日記)頁面

 

 

 

 

圖4.部落格(關於我-->個人相簿)頁面

 

3.中期專案製作(Django)

我在學習中期已經完成Django基礎和實踐了,我們在授課老師的要求下,進行了一次中期專案製作。

我和幾位同學自由組隊,六個人用一個下午的時間討論專案內容,我們在經過參考和比較之後確定下來製作一個網路線上的超市購物系統。借鑑淘寶,美團這樣的成熟消費網站,我們由要實現的功能列出表格。

在一通頭腦風暴之後,我們在晚自習結束之前,編寫好models.py檔案,建立資料庫雛形,定義所需要的函式,並且配置好所有路徑。分工之後,我負責的是系統後臺的方法編寫工作,另一位同學負責頁面編寫工作。我們兩個約定好命名格式和編寫手法。在第二天就開始了編寫工作。

在接下來兩天左右的時間裡,我都在廢寢忘食的寫程式碼。因為專案各個部分是緊密連線的,而且後臺檔案的編寫直接影響專案能否成功,所以我在編寫後臺檔案時嚴格按照規範來寫,並且保證邏輯嚴謹流暢,方法語言無錯漏,的確花費了我很大的精力。專案交接完成後,一口氣鬆下來編覺得非常疲憊。

在實際編寫過程中,我學到了很多東西,老師在課堂上講的增刪改檢視起來並不難,但是實現起來卻會遇見各種各樣的問題。我編寫一個模組後便會要來頁面進行測試修改,因為物件數目龐大,我遇見了錯誤。一串逗號隱藏其中,很難辨認出來,python報錯並不會顯示錯誤的地方,所以浪費了我近1個小時的時間,找到bug後真是又想哭又想笑,可笑我還一直在理邏輯,還以為是邏輯對不上。同樣的錯誤在之後又發生在了我隊友身上,果然粗心一不小心就會跑出來。

一切努力都是值得的,當我看見我們組專案的最終呈現時,真的有種佩服自己的成就感,這樣的成就感我怕是一輩子也不會覺得煩。

因為製作的購物網站頁面較多,在這裡只擷取幾張進行展示。系統執行部分頁面截圖如下圖所示。

 

 

 

 

圖5.使用者修改資訊頁面(前端)

 

 

 

 

圖6.使用者購物頁面(前端)

 

 

 

 

圖7.管理員登入頁面(後臺)

 

 

 

 

圖8.管理員列表頁面(後臺)

 

 

 

 

圖9.管理員資訊修改頁面(後臺)

 

 

 

 

 

圖10.管理員管理商品頁面(後臺)

4.爬蟲

在django專案製作完成以後,我們馬上進入了python爬蟲的學習。爬蟲對我而言還算是蠻新奇的。我學習的第一個爬蟲程式是爬百度首頁,知道了爬一個網站或網頁需要介面路徑、普通瀏覽器的請求頭以及請求方式,爬出來的東西可以建成新的網頁、表格等,之後可以對其進行資料分析,實用性很高。

在學習過程中,我爬了母校齊魯工業大學的網站首頁、貼吧、百度翻譯、人人網、開心網、淘寶電場等網站做初步的練習,把其中的資料儲存到本地。之後在老師的帶領下練習爬bilibili網站的視訊彈幕,並且把彈幕儲存到本地的.txt檔案中,感覺還是蠻神奇的。我爬取的b站瀟灑觀山海的視訊彈幕部分擷取如圖所示。

 

 

 

 

圖11.B站視訊部分彈幕

我在爬貓眼網站的時候大量使用了正則表示式,用來擷取電影的具體資訊,彙總成.json檔案。在之後我又使用了xpath對貓眼網站的電影資訊進行擷取,這兩種擷取方式不同,但結果是相同的。我個人更習慣用正則,不用找定位。當然,這兩種方式不存在優劣之分,只是個人習慣而已。我用正則表示式編寫的爬蟲程式如圖19所示,最終資料形成的.json檔案如圖所示。

 

圖12貓眼電影資訊獲取程式碼

圖13.貓眼電影資訊生成的json檔案

老師還給我們佈置了作業,是爬古詩文網站詩歌的名字、作者、類別和頁面詳情,我一開始聽錯了需求,導致我並沒有對詩歌做分類。這要是在職場上,我怕是要被甲方爸爸開了。這個作業是第二天蔡慶凱同學講解的,其中涉及了資料為空的狀態下,用正則表示式的取值過程。在這一個點上面,我認識到了自己和大神的差距,我的正則運用的不靈活,對正則表示式的理解也不夠。還是需要深入學習的。

在第19天的學習中,我在老師的要求下,我對鏈家網站進行了爬蟲,獲取了濟南地區的出售房子的房子名稱、地址、參考價格、戶型、面積、開盤日期和房子詳情頁連結,並生成Excel表格。在這個需求實現的過程中,我算是耗費了大量的精力。

首先對各項資料的提取就非常耗時間,加上我對xpath還不是很熟悉,在第一個資料的爬取過程中我的定位就很不準,最後添加了資料屬性後才能準確提取資訊。其次我在生成列表時忘記了資訊追加,導致新資訊覆蓋老資訊,最終還是在同學幫助下解決的問題。由此可見,我要學習的地方還有很多。我爬取的鏈家網站房屋資訊彙總表格截圖如圖所示。

 

 

 

圖14.鏈家網站房屋資訊表格

5.後期分析及專案

在學習完爬蟲和資料分析之後,我在中公教育的實訓生活就接近了尾聲。在這個階段,老師要求我們每人制作一個完整的爬蟲及資料分析專案。本身我是想爬智聯招聘網站分析招聘資訊的,但是我在爬蟲中發現這個網站需要登入,所以我立馬轉換了方向去爬晉江文學城的網站。

(1)晉江文學城是一個比較成熟的網站,各種分類做的非常詳盡,除了介面比較低齡化。它的分類,顯示資訊都很能達到讀者的需求。所以,我在看了兩天晉江網站頁面後,決定要從晉江總書庫中提取以下資訊:

 

作者、書名、型別、風格、進度、字數、作品積分、發表時間

author/book_name/category/style/status/counts/score/y_m_d/

書面詳情頁的:

內容標籤、搜尋關鍵字、總書評數、當前收藏數

title      /keys     /comments   /collect  

 

(2)我的需求:

  1. 提取頁面圖書積分對比圖,檢視書庫書目積分總體趨勢、均值和小峰值。
  2. 書庫前12頁作者出現次數詞雲圖,檢視哪些作者的書比較優質,符合讀者胃口,且產出較多,文采上佳。
  3. 書目的型別詞雲圖,檢視晉江書大多屬於哪些型別?從中窺見讀者愛看什麼型別的書?對應什麼樣的人群?市場需要什麼樣的書?未來市場會有一個怎樣的走向?
  4. 我想看看在晉江文庫前12頁,哪幾年產出的書比較多,比較受人們喜歡。
  5. 利用字數,書籍積分,收藏數,評論數分析作者的綜合能力,晉江平臺簽約的價值,影視化作品的考量。

 

(3)搞明白需求以後我進行爬蟲程式編寫,爬蟲我在用請求頭請求的時候發現晉江不給予響應,可能設定了反爬蟲,因為時間緊張,我沒有深究,直接使用了無介面瀏覽器。使用無介面瀏覽器訪問晉江文學城網頁截圖如圖所示。

圖15.無介面瀏覽器訪問晉江文學城網頁截圖

結果在使用無介面瀏覽器後發現,晉江網站還設定了一個不太高階的反爬蟲,他在我要提取的xpath中多加了一個沒有含義的td標籤,遍歷目錄的時候不能去除,而且繼續用xpath是會顯示超出範圍。然後我就困住了,經過自主在網上進行查詢和測試,我最終採用xpath標籤定位進行資料提取,在遍歷下遍歷,部分遍歷程式碼如下所示。

for i in range(1, 13): #首個遍歷
    driver = webdriver.PhantomJS(executable_path=r'C:\Users\lixue\Desktop\phantomjs-2.1.1-windows\bin\phantomjs.exe')
    url = 'http://www.jjwxc.net/bookbase_slave.php?orderstr=4&endstr=&page={}&booktype=/'.format(i)
    driver.get(url=url)
    tree = etree.HTML(driver.page_source)
    book_list = tree.xpath('//table[@class="cytable"]/tbody/tr[position()>=2])

#二次遍歷,就在這個地方

在網路十分艱難的情況下,原定下載50頁列表的我不得不只下載12頁列表,而且爬蟲過程中也是遇見了各種問題。爬下來的資料儲存到一個Excel列表裡,近600條資料。可能並不會具有很強的代表性,但是足夠進行資料分析。生成的Excel列表部分截圖如圖所示。

圖16.部分Excel列表截圖

(4)我並不是爬蟲結束才開始資料分析工作,我是在爬取資料的同時進行的資料分析程式碼編寫,分段測試,待資料爬完之後,重新啟動資料分析,形成最終結果。這樣做比較節省時間。

資料分析部分程式碼如圖所示:

 

圖17.資料分析部分程式碼

 

圖18.資料分析部分程式碼(詞雲)

(5)對晉江文學城爬取的資料進行分析的結果就是:

600條資料中作者名產生的詞雲圖如下圖所示:

 

圖19.作者詞雲(卡通輪廓版)                          圖20.作者詞雲(普通版)

由此可以看出Priest、拉棉花糖的兔子、巫哲、漫漫何其多、西子緒等字眼出現比較大,說明在晉江文學城書庫前600條作者名字中,這幾位作者的產出書目比較多、優質作品多、符合讀者胃口且文采上佳。

600條資料中作品型別詞雲圖如圖所示:

 

圖21.作品型別詞雲圖

從這個詞雲中可以看出,現在受人們喜愛的小說型別大多是愛情、原創、純愛,稍次一點的是近代現代。從中可以瞭解,人們都比較喜愛新鮮的原創文學,以求更貼切的代入感和更完美的想象。

純愛其實就是耽美BL文學,言情是男女BG文學,從中可以看出讀者更喜歡看耽美文學,腐女的市場需求很強烈,產出鏈也相對完整,未來的影視、文學、娛樂市場可以考慮一下耽美背後的腐女力量。其實近幾年已經可見端倪:

2016年《上癮》的爆火使得黃景瑜、許魏洲空降娛樂圈

2018年《鎮魂》播出,朱一龍、白宇從名不經傳到突破頂流

2019年《陳情令》播出,一群小鮮肉大火,目前苗頭正盛

愛情是平等的觀念也在廣泛傳播,伯牙子期,柏拉圖式,刎頸之交也在不斷地解鎖人們的思想。未來市場會如何發展,也許資料已經給了我們答案。

600條資料中作品積分折線圖如圖22/23所示:

圖22.作品積分折線圖

 

圖23.作品積分折線圖

這個作品積分折線圖是動態的圖,一張圖可以容納大量的資料,通過拉動底部框選條可以掌握不同範圍的資料變化。從中可以看出,放在第一頁的也不是積分普遍的高,排在後幾頁的也不是普遍的低。不過大趨勢還是比較明顯的,在書庫頁碼從前到後,積分也是由高到低的總體趨勢,各部分都會有小峰值。框選範圍內的均值便是圖中紅點遊標所示。

不過不得不說《天官賜福》的確拉高了所有作品的平均分,接下來我可能也去拜讀一下這本書。

600條資料中各年份產出書籍量對比柱狀圖如圖24所示:

 

圖24.各年份產出書籍量對比柱狀圖

這是我在所有資料中提取發表時間中的年份,並且用分組聚合的方式做出來的前600本書的各年份對比柱狀圖。從中可看出總體趨勢是在上升,2016和2017年書籍增長量較多,2018年增長量梢緩。於2018年達到峰值,代表2018年發表在晉江文學城的書獲得的積分最多、讀者多、閱讀量大、作品質量也該是不錯。2019年呈斷崖式下跌,但是我認為不是2019年的書質量差,讀者少,而是因為書會有一個讀者積累的過程。2019年的書比較新,累積的積分和閱讀量等資料都會比較少,或許到2020年再次做分析調查的時候,2019的資料才會穩定有價值。

600條資料中各年份產出書籍量佔比餅狀圖如圖25所示:

 

圖25.各年份產出書籍量佔比餅狀圖

我還做了各年份產出書的佔比圖,對比前600本書中的各年產出佔比情況。從分析2020年初的資料可見,2017和2018年的書佔據熱門書籍的半壁江山。書是具有不可預知的無限回讀性的,在電子書出現之前,新書從產出到火熱再到平淡可能會需要多年的發酵。但是我們從圖中可以看見,書已經有了快速代謝的端倪,2017和2018年產出的書還可以平分秋色,2016年產出的書還在熱門的數量就折半銳減,2015年及以前產出的書在現在幾乎已經沒什麼影響力了。由此可見網路對於書籍的催生換代有著很大的作用。

這不能說好與不好,只能說有利有弊,網路激發人們的創作慾望和閱讀渴求,新作品層出不窮,文學市場新鮮血液充足,這是很好的方面。但是書的飽和,就會造成人的閱讀速度加快,閱讀深度不夠,書籍的新老代謝加快,形成閱讀浮躁和作品消沉的情況。我們沒有資格去評價無主觀意識的網路做了什麼,產生什麼樣的影響,我們只能儘量去適應這個快速變化的時代。

 

600條資料中4項優質特徵前30對應作者出現次數佔比餅狀圖如圖26所示:

 

圖26.4項優質特徵前30對應作者出現次數佔比餅狀圖

這是我做了對總書評數、作品積分、當前收藏量、以及作品總字數這四項資料進行排序,之後提取作者名字,並對作者名字集合做佔比分析。

從圖中我發現巫哲和Priest這兩位作者佔比較高,漫漫何其多緊隨其後,這三位也是耽美文學圈裡神一般的存在。巫哲的《撒野》 、Priest的《鎮魂》 、漫漫何其多的《AWM絕地求生》也都是耽美文學的封神之作。耽美文學的熱度之高也是有目共睹。

    從圖中可以看出,在4個前30當中,巫哲能夠出現15次,說明他的優質作品不止一部,而且各方面的能力也比較均衡,是個非常有能力、有思想、有才華的作者。而且,從中可以看出,積分高,說明作品受讀者喜愛;書評多說明作品討論度高,有深度有思想,能帶動讀者積極探討;收藏量高說明讀者有不可計數回看的可能性;總字數高說明作者產出穩定、文采卓然。在圖中佔比較大的作者在這幾個方面是有均衡優勢的。而且他們會積累了大量的書粉,其作品的影視化價值也會比較高,如果拍的能比較符合原著,應該也會有不錯的反響。

耽美文學已經非常有熱度有流量,以後勢必是要往影視市場蔓延的。曾經的《上癮》《鎮魂》《陳情令》和動漫《魔道祖師》的火爆已經敲開了市場的大門,未來的《皓衣行》《撒野》的成績也很讓人期待。大眾對於耽美的態度也會越來越包容,越來越理解。愛情這樣美好的東西,不應當被性別等因素所侷限。

&n