爬蟲大做業

1.選一個本身感興趣的主題(全部人不能雷同)。css

2.用python 編寫爬蟲程序,從網絡上爬取相關主題的數據。html

3.對爬了的數據進行文本分析,生成詞雲。java

4.對文本分析結果進行解釋說明。python

5.寫一篇完整的博客,描述上述實現過程、遇到的問題及解決辦法、數據分析思想及結論。 程序員

 

此次大做業選的主題是豆丁網的文檔裏關於IT計算機的主題的主要討論是哪些推測哪些比較重要,面試

因此是先進入豆丁網的IT計算機頁面:http://www.docin.com/l-10017-0-0-0-0-1.html算法

 

<1>.實現過程:sql

(1)由下圖能夠獲取IT計算機版塊標題:打開開發者工具,我要找的內容在a標籤裏class=「goToDocs」,保存1~19頁的題目,並保存在ITcomputer.txt。shell

 

# 保存1~19頁的題目
for i in range(1,20):
        pages = i;
        nexturl = 'http://www.docin.com/l-10017-0-0-0-0-%s.html' % (pages)
        reslist = requests.get(nexturl)
        reslist.encoding = 'utf-8'
        soup_list = BeautifulSoup(reslist.text, 'html.parser')
        for news in soup_list.find_all('a',class_='goToDocs'):
            print(news.text)
            f = open('ITcomputer.txt', 'a', encoding='utf-8')
            f.write(news.text)
            f.close()

 

圖1-1

(2)把全部題目裏的多餘符號和信息去掉,保存爲字典數據庫

def changeTitleToDict():
    f = open("ITcomputer.txt", "r", encoding='utf-8')
    str = f.read()
    stringList = list(jieba.cut(str))
    delWord = {"+",".","_", "/", "(", ")","..","(",")", "【", "】", ", "," ",":", ";", "!", "、","論文","的","畢業","-","D","—","[","]","畢業設計","與","及","之","中","在","和"}
    stringSet = set(stringList) - delWord
    title_dict = {}
    for i in stringSet:
        title_dict[i] = stringList.count(i)
    return title_dict

 字典內容:

{'說明書': 8, '完整版': 8, 'LITERATURE': 2, '變頻器': 2, '統計分析': 2, '匹配': 2, '現狀': 2, '套': 2, '可': 2, '辛醇': 2, '型': 2, 'div': 2, '數控系統': 2, '常見問題': 2, '流失': 2, '微機': 8, '之花': 2, '2016': 4, '藝術設計': 2, '2017': 2, '停車場': 2, '輕鬆': 2, 'CRC': 2, '第三章': 6, 'MCS': 4, '標記': 2, 'Ⅱ': 2, '實例教程': 2, '快速': 2, 'ERP': 2, '開發軟件': 2, '網絡工程': 2, '管理信息系統': 8, '產業': 2, '如下內容': 2, 'TCP': 2, '重鋼': 2, '交換': 2, '一些': 4, 'Java': 4, '聯網': 4, 'Abaqus': 2, '城鎮': 2, '黃皓': 2, 'Clarus': 2, '聲音': 2, 'Schema': 2, 'extjs': 2, 'Basic': 10, 'online': 2, 'Sharepoint': 2, '版本': 4, '光學': 4, '1RP90': 2, 'AWS': 2, '電腦主板': 2, '途徑': 2, '選擇題': 2, '爲例': 2, '美化': 2, '14DreamweaverCS3': 2, '體檢': 2, 'leader': 2, '工程施工': 2, '複習': 2, '服務行業': 2, '文件傳輸': 2, '渠道': 2, '例程': 2, '計算機輔助': 12, '實例': 4, 'L': 2, '開發': 24, 'BT200': 2, '裝配': 2, '擴展': 2, '測試工具': 2, '鏈接': 2, '屏蔽': 2, '解讀': 2, '面向': 2, '網下': 2, '富': 2, 'java': 4, '列': 2, '協議': 6, '變異': 2, '概述': 2, '維修': 2, '掃描': 2, '板': 2, 'phone': 2, '2018': 6, '簡單': 4, '後臺': 2, '化學': 2, '事件驅動': 2, 'ui': 2, 'maxDNA': 2, '客戶端': 2, '詞法': 2, '檢索系統': 2, '協同': 2, '多媒體技術': 2, '計算機技術': 2, '簡介': 4, '帶': 2, '問題': 6, '第六章': 4, 'Oracle': 4, '造成': 2, 'fast': 2, '概論': 4, 'Online': 2, '上傳': 2, '組織': 4, '星星': 2, 'format': 2, '電子商務系統': 2, '醫療': 2, '上機': 2, '緒論': 2, '視訊': 2, '很': 2, '存儲設備': 2, 'css': 4, '關聯': 2, '推薦': 2, '指導': 2, '軟件可靠性': 2, 'ENGLISH': 2, '信息處理': 4, '檢索': 10, '動畫': 4, '實際': 2, '遠': 2, '信息管理系統': 16, '集成': 12, '電力': 2, '閱讀': 2, '高速': 2, '程序設計': 16, '招標': 2, '掌握': 4, '波節': 2, '新娘': 2, '總結': 4, 'Workbench': 2, '目錄': 2, ',': 4, '精品': 18, '羣': 4, 'C': 6, 'NET': 4, '下': 6, 'db2': 2, 'Mate': 2, 'pattern': 2, '章用': 2, 'PULSE': 2, '用': 2, '5': 6, '以及': 2, 'python': 4, '能夠': 2, '鎖': 2, '3G': 6, 'LoadRunner': 2, '軟件': 16, '股票市場': 2, '2': 4, '計算技術': 2, '計算機': 20, '數學公式': 2, 'AKTA': 2, 'Ms': 2, '指導書': 6, '章大': 2, '資訊科技': 2, '信息化': 2, '寶典': 2, '第二章': 6, 'Brother': 4, 'UCGUI': 2, '隊列': 2, '智慧': 2, 'IM': 2, '2012': 4, '講師': 2, '之土': 2, 'v1.0': 2, 'STM32': 2, '辦公': 10, '彎曲': 2, '分型': 2, '·': 8, 'rec': 2, '局域網': 4, 'Minus': 2, '三網': 2, '設定': 2, '保山市': 2, '方法': 8, '直線': 2, '環境': 2, '課後': 4, '協議書': 2, '辦公自動化': 6, '過濾': 2, '理論': 6, '第三方': 2, '差動': 2, '考覈': 2, '傳送': 2, 'in': 2, '計算機信息': 2, '大綱': 2, '生活': 4, '領域': 2, '博客': 8, '暗灰': 2, '處理': 6, '主講': 2, 'C語言': 6, '元素': 2, '畢業論文': 18, 'Training': 2, '用戶': 6, '高級': 4, '監聽': 2, '關鍵技術': 6, '工程規劃': 2, '一體化': 2, 'PCschematic': 4, '宏': 2, '工做': 6, 'SQL21': 2, '技巧': 10, '組成': 2, '1MATLAB': 2, '產業化': 2, '交互': 2, '聚集': 4, '網絡資源': 6, '簡明': 4, '模': 2, '入門': 20, '8510DN': 4, '摘要': 2, '電纜': 2, 'H474': 2, 'pptUG': 2, '車牌': 2, '輪胎': 2, '時態': 2, '濾波器': 2, 'zookeeper': 2, '我的簡歷': 2, '多線程': 2, '貪腐': 2, 'Greenplum': 2, '章': 24, '打字': 2, '王超': 2, '手機': 4, '容錯': 2, '20140101': 2, '數據庫系統': 6, '橋': 2, '一': 4, '上傳下載': 2, 'Motivation': 2, 'LabVIEW': 4, '利用': 2, '電子': 4, '直播': 4, '識別系統': 2, 'google': 2, 'UI': 6, '認購': 2, 'arduino': 2, '1208NewNAS': 2, '報錯': 2, '圖': 2, '行爲': 2, 'Week': 2, '重點': 2, '思科': 2, '格式': 4, '多表': 2, '機': 4, 'MANUEL': 2, '遠程': 4, '1.0': 2, '多': 4, '年': 4, '規則': 2, 't': 2, '通話': 2, '社區': 2, 'd': 2, '第一章': 4, '系統': 44, '健康': 4, '固件': 2, '約束': 2, '將來': 2, '六': 2, '分組': 4, 'M02ANSYS': 2, '3': 10, '=': 2, '適應': 6, '棧': 2, '人工智能': 14, 'AP': 2, 'Objective': 2, 'Indicator': 2, '通': 4, '系統集成': 2, '從': 2, 'Visual': 8, '移動': 10, 'SonicWALL': 2, '數據通信': 2, '驅動': 6, '地籍': 2, '視頻': 10, 'c': 2, '網絡系統': 2, '營銷': 4, '數據中心': 6, '企業': 10, '非': 2, 'pdf': 6, '化工': 2, '7': 10, '500': 4, '器材': 2, '規劃設計': 2, '風險': 4, '二號': 2, '命令': 2, '一天': 2, '平臺': 28, '軟件教程': 2, '路': 2, '數字證書': 2, 'MFC': 12, '消息': 2, '進階': 2, '基本功能': 2, '引擎': 2, '政策': 2, 'Press': 2, '微信': 4, '大容量': 2, '網頁': 20, 'final': 2, 'Animation': 2, '實驗報告': 2, '講義': 6, '存儲空間': 2, '篇': 2, 'Blaster': 2, '代碼': 4, '三維': 2, '資料集': 2, '控制器': 4, '\ufeff': 1, '1.2': 2, '系列': 8, 'SPCE061A': 2, '關鍵': 2, '存儲系統': 8, '計算': 10, '可編程': 2, '員工': 2, 'Version': 2, '朱照': 2, '動覺': 2, '筆記本': 2, 'oracle': 4, 'chapter7': 2, '信息': 8, '´': 2, '優化': 6, '源程序': 2, '6.0': 2, '搭建': 2, '生產': 2, '終端': 2, '神筆': 2, '92': 2, '聊天室': 4, '自學': 2, '指揮系統': 2, 'Transact': 2, 'Structures': 2, 'pptBeginning': 2, 'SVM': 2, '政協提案': 2, '配置文件': 2, '原型': 2, '驅動程序': 2, '成功': 2, '丁': 2, '如何': 4, '煤炭行業': 2, 'Machine': 2, '中文': 30, '圖書': 2, '2003': 2, '產品': 2, 'so': 2, 'ANSYS': 4, '策劃案': 2, '漏洞': 2, '我的': 2, 'Geometric': 2, 'the': 2, '閾值': 2, '桑新柱': 2, '以': 2, '裝置': 2, '視覺': 6, '運算': 2, '試論': 4, '採購': 2, '監控': 4, '電視': 2, '自由': 2, '5000': 2, 'LM317': 2, '上位': 4, '元': 4, '最新': 10, 'commands': 2, 'Pivotal': 2, 'FANUC': 2, '並行計算': 4, '快修': 2, 'SQL': 4, '初級': 2, 'SHIP': 2, 'curve': 2, '五筆': 2, '540': 2, 'Solr': 2, '韓三普': 2, '燃煤': 2, 'Background': 2, '天然災害': 2, 'ⅱ': 2, '實踐': 4, '資料': 8, '語法分析': 2, '稅負': 2, '模式': 2, '海報': 2, '源代碼': 4, '信息技術': 2, '激光': 2, '振動': 2, '微軟': 2, 'XCPgenesis2000': 2, 'APP': 2, '操做': 2, '微課': 2, '第': 30, '佈局': 8, '3.0': 2, 'UML': 4, '軟件系統': 2, '圖文': 6, '粒子': 2, '各國': 2, '多方': 2, '濾線器': 2, 'UG': 2, '庫': 2, 'DCS': 2, '編譯器': 2, 'Ubuntu': 2, '統一': 2, '04': 2, '電路設計': 4, '實訓': 4, '模式識別': 2, '服務器': 2, '畢': 2, '課件': 24, '爆破': 2, '控制系統': 6, '201504': 2, '人工神經網絡': 2, 'XC': 2, '0': 2, '電力系統': 2, '行之有效': 2, '滿天': 2, '3.3': 2, '查詢': 6, '一個': 2, 'OWASP': 2, '串行': 2, '技術培訓': 2, '計劃': 4, '並行': 4, '二值': 2, 'Electrical': 2, 'HAZOP': 2, 'SPSS': 6, '講稿': 2, '入門教程': 2, '時代': 2, '情報': 2, 'docPython': 2, '軟件設計': 2, '位': 2, '解決': 2, '精選': 6, '演進': 2, 'Lattice': 2, '分割': 2, '參考答案': 2, '即時': 2, '第三課': 2, 'SAT': 2, '9': 2, '及其': 4, '零售': 4, '部分': 4, '說明': 4, 'WLAN': 2, '數據結構': 2, 'Matrix': 2, '精通': 2, '大學': 8, '分析': 40, '反饋': 2, 'Moc': 2, '薪酬': 2, '培訓': 6, '教學資料': 2, 'BB': 2, '4278': 2, '寧職院': 2, '優質': 2, '第七章': 2, '0i': 4, '界面': 2, '性': 2, '模具設計': 2, '博士': 2, 'bezier': 2, '流': 2, '策略': 2, '算': 2, 'mcos': 2, '中文翻譯': 2, '有關': 2, '於小波': 4, 'MGCP': 2, '小車': 4, '智能化': 2, '參考手冊': 2, '宣傳': 2, '客戶': 2, '學習': 10, 'matlab': 10, '建模': 2, '8520DN': 4, 'XML': 4, '語句': 2, '計算機軟件': 2, 'plsql': 2, '存儲技術': 2, '概念': 2, '標準': 10, '文本': 2, '培訓教材': 2, '翻譯': 4, '設計': 106, 'EXCEL': 4, '高品質': 2, '關係': 2, '案例': 2, '模塊': 4, '故障': 2, '文檔': 2, 'DIV': 6, 'sql': 2, '股票': 8, '書宋': 2, '縣': 2, 'Clem': 2, '法律': 4, '機房': 8, 'Transitionin': 2, 'v12': 2, '分揀': 4, '運維': 2, '換熱器': 2, 'arm': 2, 'Mastercam': 2, '全': 2, 'ETF': 2, '語言': 10, 'AI': 2, '個性化': 4, 'ppt': 16, '第四版': 2, '介紹': 4, '助力': 6, '放大': 2, 'OA': 2, '攝像': 2, '聯合': 2, '課題': 4, '綜述': 2, '數據庫': 14, '模型': 6, 'COS': 2, 'dom': 2, '式': 2, '滑動門': 2, 'IT': 2, '電': 2, '結晶器': 2, '小學': 2, '天': 2, 'word': 6, '之道': 2, '建議': 2, '試題': 2, '》': 8, 'visual': 4, '《': 8, '算法': 8, '51': 6, 'shell': 2, 'ftp': 2, '轉載': 2, '樣式': 4, '教育': 4, '這些': 2, '15': 2, '鍋爐': 2, '檢測': 2, '計算機科學': 2, '軟件測試': 2, '數據處理': 2, '運銷': 2, 'ALTERA': 2, '模板': 2, '你': 2, '課程設計': 16, '規劃': 2, '對象': 2, '電子秤': 2, '創業': 4, '移動機器人': 2, 'SCORM': 2, '治理': 2, '教案': 4, 'PPT': 28, '多維分析': 2, 'paxos': 2, '卡口': 2, '實驗': 8, '前臺': 2, '像素': 2, '基本': 2, '信用卡': 2, 'modeling': 2, 'GPU': 2, 'USB': 4, '海量': 4, 'Linux': 4, '系統分析': 2, '基礎': 20, 'Winbond': 2, '數據挖掘': 10, '人機交互': 2, '調查報告': 2, '1231dreamweaver': 2, '方法論': 2, 'O2O': 2, '2html': 2, '面試': 2, '串級': 2, '音箱': 2, '職位': 2, '日': 2, '第四': 4, '融合': 6, '開源': 2, '專業': 4, 'PYthon': 2, '選舉': 2, 'WebAccess': 2, '語法': 4, '面對': 2, '方案': 18, '多核': 2, '優秀': 2, '瀋陽': 2, 'LM90': 2, '評論': 2, '新': 4, '靈敏度': 2, 'unix': 8, '特徵值': 2, '發展趨勢': 2, '進行': 2, '智能': 10, '發現': 2, '系統管理': 2, '05': 2, 'MoldWizard': 2, '中國': 2, '輔助': 4, '芯片': 2, '講': 6, '玩': 2, '圖式': 2, '自動': 8, '網': 4, '數據': 20, 'T': 2, '體系結構': 4, '’': 2, '後綴': 2, '交互式': 2, '電機': 2, '地區': 2, 'flash': 2, '信用': 2, '育微課': 2, '手冊': 8, '多媒體': 2, '固態': 2, '詳解': 4, '批改': 2, '具備': 2, '支付': 2, '徹底': 2, '傳感器': 4, 'IC': 2, '結構': 4, '放大器': 2, '系統軟件': 4, 'OCR': 2, '保護裝置': 2, '成績': 4, '後置': 2, '長安': 6, '物': 4, '學生': 6, 'Asteion': 2, '數據服務': 2, '檔案': 6, '分佈式': 2, '雙活': 2, '教學大綱': 2, '光存儲': 2, '創新': 2, '幾何': 2, 'WAPI': 2, '補貨': 2, '級': 2, '題': 4, 'TYCO': 2, '經常使用': 2, 'docc': 2, '動易': 2, '32': 2, 'Android': 4, '求': 2, '範例': 2, 'pop': 4, '評估': 2, 'Task': 2, '分享': 2, '11': 2, '年產': 2, 'Flex': 2, '支撐': 2, 'Native': 2, '仿真': 2, '電腦知識': 4, '題目': 2, 'Modbus': 2, '域名': 2, '租': 2, 'R2014aCPU': 2, 'Server': 4, 'FPGA': 2, 'WEB': 2, '電子設計': 2, '圖像': 8, '華夏': 2, '單片機': 8, '教程': 38, '可行性研究': 4, '二級': 4, '彙報': 2, 'hydromassage': 2, '常見': 4, '練習': 2, 'gb': 2, '競賽': 2, '初步設計': 2, '狀況': 2, 'cs6': 2, 'PI': 2, '第五章': 4, '存儲器': 2, 'pptAPM': 2, 'GCMS': 2, '基': 4, '通訊': 6, '實時': 2, '文章': 2, '內部資料': 2, '自': 6, '三級': 2, '河北省': 2, '通信': 36, 'CAN': 2, '無恥': 2, '實現': 34, '學位': 2, 'MATLAB': 4, '面': 2, '工具': 6, '姚延棟': 2, '點對點': 2, '測試': 4, '漢字': 2, 'Match': 2, '流量': 2, 'basic': 4, '圖像處理': 4, '網上': 2, ':': 2, '軟件工程': 8, 'VBScript': 2, 'PLC': 2, 'Web': 6, '操做系統': 8, '深藍': 2, 'doc': 8, '19': 2, '校園': 6, '經典': 8, '花椒': 2, '解決方案': 6, '表': 2, '大': 8, '教學系統': 2, 'Visualbasic': 2, '網絡安全': 2, 'or': 2, '阿里巴巴': 2, '框架': 2, '程序員': 2, '類': 2, '福建': 2, '任務': 2, '最終': 2, '8': 2, '聯通': 2, 'QQ': 2, '本和利時': 2, '導論': 4, '識別': 4, '第一行': 2, 'and': 4, '尺度': 2, 'VC': 2, '公衆': 2, '劇本': 2, '內部': 2, '網站': 12, '大全': 6, '發展': 4, '機制': 4, 'Datacolor': 2, '季順寧': 2, '彙編語言': 2, '商城': 2, '2010': 6, '探析': 2, '建設工程': 2, '特效': 2, '分散': 2, '管理系統': 18, 'PDC': 2, '通訊工程': 2, '微模塊': 2, '數據分析': 2, '大算例': 2, '工資': 2, '網絡通信': 2, '小區': 2, '增值稅': 2, '循跡': 4, 'agent': 4, 'vb': 4, '中心': 2, '並行算法': 2, '等級': 2, '教學': 12, '工程': 4, '項目': 12, '知識': 6, 'Python': 4, '文件': 8, 'Cocoa': 2, 'Windows': 2, '白皮書': 2, '橋樑': 2, '主觀題': 2, 'SEO': 4, 'ASBJ2014': 2, '管': 2, 'JSP': 2, 'Ansoft': 2, '應用': 68, '事務': 2, '小': 4, '李曉峯': 2, '操做手冊': 2, '諮詢': 2, '21.1': 2, '雲': 16, '10': 4, '卡中': 2, '存儲': 14, 'DE': 2, 'A': 2, '體驗': 2, '吳虹鷗': 2, '存儲陣列': 2, 'ssl': 2, '01': 4, '配置': 2, '教材': 2, '棧隊': 2, '信息系統': 6, '賺': 2, '緩存': 2, '總線': 2, '路徑': 2, '案件': 2, '編程語言': 2, '時': 2, '促進': 2, 'geometric': 2, '添加': 2, '安全': 4, 'Bose': 2, '架構': 12, '短信': 2, '行人': 2, '官方': 2, '統計': 2, 'CSS': 12, '探': 2, 'Systems': 2, '功能': 2, '工程造價': 2, '報告': 20, '中醫': 2, '打印': 2, '機器': 2, 'chapter6': 2, '上門': 2, '21': 2, 'cognos': 2, '冊': 2, '預測': 2, '運行': 4, '指令系統': 4, '建議書': 2, '山西': 2, '實施方案': 4, 'cn': 4, '打': 2, 'AUTO40': 2, 'hnc': 2, '6': 4, '版': 6, 'CDN': 2, '團隊': 2, 'Modeliing': 2, '全套': 2, '阿里': 2, '編譯': 4, '輸入': 2, '考試': 6, 'RFC2705': 2, '函數': 2, '結果': 2, '使用手冊': 4, '交流': 2, '法語': 4, '答案': 8, 'Equipment': 2, '上': 2, '「': 4, '基於': 64, '市場': 2, 'MES': 2, '指標': 2, '1': 12, 'Flash': 2, '計算機專業': 2, 'pptVisual': 2, '突破': 2, '即時通信': 8, '13': 2, '槍大': 2, 'Perl': 2, '淺析': 4, 'script': 6, 'Clementine': 2, '策劃書': 2, '現金': 2, '微型': 4, '工程師': 2, '谷歌': 2, '省市': 2, '34': 2, '做者': 2, 'Portal': 2, '網絡': 24, 'hog': 2, '第八': 2, 'μ': 2, '數字': 2, '轉': 2, '組態王': 2, '電線': 2, '策劃': 6, '資源': 4, '碩士學位': 2, '穩態': 2, '清華大學': 2, 'Tekla': 2, '電路': 2, 'CASS': 2, '廖凡磊': 2, 'AutoCAD': 2, '政府': 2, '基礎知識': 2, 'CH01': 2, '物業': 2, '無線': 2, '甲魚': 2, '有限': 2, '維護': 2, 'Reward': 2, '方案設計': 2, '神經網絡': 2, '碩士論文': 2, '4': 2, '烽火': 2, '超': 2, 'Baignoire': 2, '接口技術': 4, '指南': 6, '解答': 2, '仿人': 2, ',': 2, '行業': 4, '中小企業': 2, '研究': 60, '若干': 2, '建設': 12, 'Auto50': 2, '字符串': 2, 'CCNA': 2, '焦點': 2, '服務': 12, '運輸': 2, '習題': 2, 'UTILISATEU': 2, 'PTN': 2, '軟交換': 2, '防禦': 2, '液位': 2, '深度': 2, '高校': 2, '002': 2, '認證': 2, 'IO': 2, '控制': 4, '嵌入式': 8, '第四章': 6, '8515DN': 4, '」': 4, '性能': 2, '互聯網': 4, '安全性': 2, '設置': 4, 'NX6.0': 2, 'CT': 2, 'etl': 2, '程序': 6, '感知': 2, '安全措施': 2, 'halcon': 2, '管理': 10, '中職': 2, '數據類型': 2, '外': 6, 'execute': 2, '率': 2, '到': 2, 'IM3': 2, '銀行': 4, 'pdfForm': 2, '電氣工程': 2, '用戶手冊': 2, '新編': 2, '製做': 6, '問題解答': 4, '包': 2, '使用': 12, '窗體': 2, '解析': 2, '交易系統': 2, '&#': 2, '會': 2, '原理': 22, '矩陣': 4, '技術': 52, '挖掘': 2, '編程': 16, '對策': 4}

 

(3)統計前50出現的詞語排序,保存在wordcound.txt。

title_dict=changeTitleToDict()
dictList = list(title_dict.items())
dictList.sort(key=lambda x:x[1],reverse=True)
f = open('wordcount.txt', 'a', encoding='utf-8')
for i in range(50):
    print(dictList[i])
    f.write(dictList[i][0] + ' ' + str(dictList[i][1]) + '\n')
f.close()

(4)生成詞雲

from PIL import Image, ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator

font = r'C:\Windows\Fonts\simhei.TTF'# 引入字體
title_dict = changeTitleToDict()
#讀取背景圖片
image = Image.open('./1.png')
graph = np.array(image)
wc = WordCloud(font_path=font,#設置字體
                 background_color='White',
                mask=graph, #設置背景圖片,背景是電腦
               max_words = 200)
wc.generate_from_frequencies(title_dict)
image_color = ImageColorGenerator(graph)# 繪製詞雲圖
plt.imshow(wc)
plt.axis("off")
plt.show()

選取的圖片:

結果:

<2> 遇到的問題及解決辦法

(1)wordcloud沒法安裝

問題:

  1.安裝時,直接用 pip install wordcloud是會報錯的,會有文件缺失的問題

  

解決方法:

  1.訪問:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

      選擇合適的版本下載(cp指的是系統上安裝的python版本,32表示安裝的python版本是32位),我安裝的是wordcloud-1.4.1-cp36-cp36m-win32.whl

       在終端輸入命令:pip install wordcloud-1.4.1-cp36-cp36m-win32.whl,而後按file-setting-project interpreter打開下圖:

                              

 <3>數據分析思想及結論

    詞雲生成結果顯示,豆丁網的文檔裏關於IT計算機的文檔的主要討論設計和應用,這不止是IT計算機,也是商軟專業注重的。

 

6.最後提交爬取的所有數據、爬蟲及數據分析源代碼。

import requests
from bs4 import BeautifulSoup
import jieba

# 保存1~19頁的題目
for i in range(1,20):
        pages = i;
        nexturl = 'http://www.docin.com/l-10017-0-0-0-0-%s.html' % (pages)
        reslist = requests.get(nexturl)
        reslist.encoding = 'utf-8'
        soup_list = BeautifulSoup(reslist.text, 'html.parser')
        for news in soup_list.find_all('a',class_='goToDocs'):
            print(news.text)
            f = open('ITcomputer.txt', 'a', encoding='utf-8')
            f.write(news.text)
            f.close()

# 把全部題目裏的多餘符號和信息去掉,保存爲字典
def changeTitleToDict():
    f = open("ITcomputer.txt", "r", encoding='utf-8')
    str = f.read()
    stringList = list(jieba.cut(str))
    delWord = {"+",".","_", "/", "(", ")","..","(",")", "【", "】", ", "," ",":", ";", "!", "、","論文","的","畢業","-","D","—","[","]","畢業設計","與","及","之","中","在","和"}
    stringSet = set(stringList) - delWord
    title_dict = {}
    for i in stringSet:
        title_dict[i] = stringList.count(i)
    # print(title_dict)
    return title_dict

# 統計前50出現的詞語排序,保存在wordcound.txt
title_dict=changeTitleToDict()
dictList = list(title_dict.items())
dictList.sort(key=lambda x:x[1],reverse=True)
f = open('wordcount.txt', 'a', encoding='utf-8')
for i in range(50):
    print(dictList[i])
    f.write(dictList[i][0] + ' ' + str(dictList[i][1]) + '\n')
f.close()

 # 生成詞雲
from PIL import Image, ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator

font = r'C:\Windows\Fonts\simhei.TTF'# 引入字體
title_dict = changeTitleToDict()
#讀取背景圖片
image = Image.open('./1.png')
graph = np.array(image)
wc = WordCloud(font_path=font,#設置字體
                 background_color='White',
                mask=graph, #設置背景圖片
               max_words = 200)
wc.generate_from_frequencies(title_dict)
image_color = ImageColorGenerator(graph)# 繪製詞雲圖
plt.imshow(wc)
plt.axis("off")
plt.show()
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息