基于scrapy框架的騰訊招聘信息網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于scrapy框架的騰訊招聘信息網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于scrapy框架的騰訊招聘信息網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于scrapy框架的騰訊招聘信息網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于scrapy框架的騰訊招聘信息網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目錄第1章緒論 11.1研究背景和意義 11.1.1選題的目的及意義 11.1.2國(guó)內(nèi)外發(fā)展?fàn)顩r 11.2研究的基本內(nèi)容與擬解決的主要問(wèn)題 11.3研究的方法與技術(shù)路線 21.3.1研究方法 21.3.2研究手段 2第2章基于python的網(wǎng)絡(luò)爬蟲(chóng) 42.1python語(yǔ)言簡(jiǎn)介 42.2網(wǎng)絡(luò)爬蟲(chóng) 42.2.1網(wǎng)絡(luò)爬蟲(chóng)的定義 42.2.2網(wǎng)絡(luò)爬蟲(chóng)的基本流程 52.3scrapy框架 52.3.1scrapy框架的基本原理 52.3.2scrapy框架的基本流程 72.4分布式網(wǎng)絡(luò)爬蟲(chóng)原理 8第3章網(wǎng)絡(luò)爬蟲(chóng)模型的設(shè)計(jì)和實(shí)現(xiàn) 93.1網(wǎng)絡(luò)爬蟲(chóng)的爬取對(duì)象 93.2網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)功能架構(gòu) 93.3網(wǎng)絡(luò)爬蟲(chóng)流程設(shè)計(jì) 103.4騰訊招聘網(wǎng)頁(yè)分析 113.4.1判斷網(wǎng)頁(yè)的靜/動(dòng)態(tài)加載 113.4.2分析一級(jí)網(wǎng)頁(yè)獲取相應(yīng)數(shù)據(jù) 123.4.3分析二級(jí)網(wǎng)頁(yè)獲取相應(yīng)數(shù)據(jù) 143.5網(wǎng)絡(luò)爬蟲(chóng)的具體實(shí)現(xiàn) 153.5.1創(chuàng)建spider項(xiàng)目文件 153.5.2定義Item容器 153.5.3編寫(xiě)爬蟲(chóng)程序 163.5.4編寫(xiě)pipelines.py 193.5.5修改setting.py 20第4章第4章系統(tǒng)功能測(cè)試與實(shí)現(xiàn) 224.1爬蟲(chóng)運(yùn)行測(cè)試 224.2選擇要爬取的地區(qū) 224.3爬蟲(chóng)爬取過(guò)程 224.4數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù) 234.5爬蟲(chóng)爬取結(jié)束 23結(jié)束語(yǔ) 25參考文獻(xiàn) 26致謝 27緒論研究背景和意義選題的目的及意義在早期的互聯(lián)網(wǎng)時(shí)代,人們主要通過(guò)篩選網(wǎng)絡(luò)上大量數(shù)據(jù),然后來(lái)獲取需要信息,互聯(lián)網(wǎng)技術(shù)發(fā)展的落后使得搜索技術(shù)影響了所需數(shù)據(jù)的速度和品質(zhì),與此同時(shí),互聯(lián)網(wǎng)一直在快速發(fā)展著,信息的質(zhì)量也變得更加重要。因此,網(wǎng)絡(luò)信息的傳播面臨著巨大的機(jī)遇和挑戰(zhàn)[1]。如今的大規(guī)模數(shù)據(jù)在不同領(lǐng)域的相同或類似的關(guān)鍵詞的模糊性、搜索系統(tǒng)的整體結(jié)果都包含著復(fù)雜的信息。這是為了讓必要的信息出現(xiàn)在畫(huà)面上,需要做出額外的努力。在時(shí)間上,尤其是網(wǎng)絡(luò)快速發(fā)展的情況下,服裝、食品、住宅和旅行與網(wǎng)絡(luò)有著密切的關(guān)系。如果想找到好的、滿意的工作,在網(wǎng)上招聘信息中也有選擇。需要有關(guān)招聘新員工的信息將在網(wǎng)上公開(kāi)。尋找最合適的工作,要求工作地點(diǎn)、工資和其他適當(dāng)條件,工作經(jīng)驗(yàn)和培訓(xùn)將使他們掌握有關(guān)各領(lǐng)域工作的最合適信息[2]。然而在海量數(shù)據(jù)里能夠自由自在的獲取自己所需要的信息,爬蟲(chóng)就是一個(gè)不錯(cuò)的選擇。國(guó)內(nèi)外發(fā)展?fàn)顩r上世紀(jì)九十年代起,網(wǎng)絡(luò)爬蟲(chóng)技術(shù)便開(kāi)始被研發(fā)。到現(xiàn)在為止,網(wǎng)絡(luò)爬蟲(chóng)技術(shù)已經(jīng)逐步成熟。網(wǎng)絡(luò)爬蟲(chóng)主要包括了網(wǎng)頁(yè)搜索策略和網(wǎng)頁(yè)分析策略,其中網(wǎng)頁(yè)搜索策略包含了廣度優(yōu)先法和最佳度優(yōu)先法;網(wǎng)頁(yè)分析策略包含了基于網(wǎng)絡(luò)拓?fù)涞姆治鏊惴ê突诰W(wǎng)頁(yè)內(nèi)容的網(wǎng)頁(yè)分析算法[3]。研究的基本內(nèi)容與擬解決的主要問(wèn)題本項(xiàng)目主要抓取騰訊招聘網(wǎng)站里有價(jià)值的數(shù)據(jù),利用Scapy框架爬取騰訊招聘官方網(wǎng)站主頁(yè)上刊登的招聘信息。例如,其中網(wǎng)頁(yè)鏈接、職位名稱、職位職責(zé)、職位職責(zé)、職位利用現(xiàn)有技術(shù)在項(xiàng)目中免除注冊(cè),實(shí)現(xiàn)了多個(gè)目標(biāo),如要求、地點(diǎn)和發(fā)布時(shí)間等。同時(shí)對(duì)爬取得的數(shù)據(jù)進(jìn)行初步篩選,除去多余的信息,除了可以節(jié)省當(dāng)?shù)乜臻g外,數(shù)據(jù)科學(xué)家對(duì)數(shù)據(jù)進(jìn)行兩次清洗、精制,從而得到更有價(jià)值的信息。本項(xiàng)目對(duì)爬蟲(chóng)類的作用機(jī)構(gòu)和設(shè)計(jì)模式進(jìn)行了優(yōu)化。同時(shí)采用了適當(dāng)?shù)脑O(shè)計(jì)模式,可以及時(shí)將內(nèi)存數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),大幅減少了內(nèi)存資源的占用。研究的方法與技術(shù)路線研究方法如今很多爬蟲(chóng)都是運(yùn)用后臺(tái)腳本類語(yǔ)言來(lái)進(jìn)行編寫(xiě),毫無(wú)疑問(wèn)地,按使用次數(shù)來(lái)衡量,比較多的便是運(yùn)用Python語(yǔ)言。Python發(fā)展了許多優(yōu)秀的庫(kù)和框架。本項(xiàng)目將采用Python中的scrapy框架作為爬蟲(chóng)實(shí)現(xiàn)語(yǔ)言對(duì)爬蟲(chóng)進(jìn)行編寫(xiě)。爬蟲(chóng)的工作流程通常是非常復(fù)雜的,它需要運(yùn)用網(wǎng)頁(yè)數(shù)據(jù)分析算法去刪除一些毫無(wú)作用的鏈接,將需要用到的鏈接保存并且放入url隊(duì)列中等待提取,之后根據(jù)編寫(xiě)的搜索策略從隊(duì)列中選擇進(jìn)一步要獲取的鏈接,重復(fù)這個(gè)過(guò)程直到程序停止。還有,系統(tǒng)往往會(huì)保存爬蟲(chóng)爬取到的所有網(wǎng)頁(yè),然后進(jìn)行網(wǎng)頁(yè)分析、過(guò)濾數(shù)據(jù)。如果一個(gè)網(wǎng)站不愿意網(wǎng)站數(shù)據(jù)流出,就會(huì)根據(jù)爬蟲(chóng)的特征進(jìn)行識(shí)別,拒絕爬蟲(chóng)的訪問(wèn)[4]。一個(gè)完整的網(wǎng)絡(luò)爬蟲(chóng)會(huì)包括四個(gè)模塊:網(wǎng)絡(luò)請(qǐng)求模塊、爬取流程控制模塊、內(nèi)容分析提取模塊、反爬蟲(chóng)模塊。研究手段研究的主要任務(wù)(1)使用python的scrapy框架來(lái)設(shè)計(jì)爬蟲(chóng)系統(tǒng)。(2)網(wǎng)絡(luò)爬蟲(chóng)需要對(duì)有用的數(shù)據(jù)進(jìn)行提取,再之后篩選出職位名稱等需要的數(shù)據(jù)。(3)最終完成的網(wǎng)絡(luò)爬蟲(chóng)一開(kāi)始要網(wǎng)頁(yè)地址進(jìn)行分析之后再得到有用的數(shù)據(jù)。(4)最后設(shè)計(jì)完成的網(wǎng)絡(luò)爬蟲(chóng)要提取需要的數(shù)據(jù)。研究各階段要求:(1)總體階段要根據(jù)所需的要求來(lái)設(shè)計(jì)出方案。(2)具體階段要對(duì)有疑惑的問(wèn)題進(jìn)行解答并設(shè)計(jì)出詳細(xì)方案,然后選擇最佳的設(shè)計(jì)方案。(3)編碼階段要選取適合的開(kāi)發(fā)工具以及適合的技術(shù)標(biāo)準(zhǔn)。(4)測(cè)試階段要進(jìn)行預(yù)測(cè)系統(tǒng)的運(yùn)行結(jié)果,之后通過(guò)編譯來(lái)測(cè)試是否達(dá)到需求。設(shè)計(jì)開(kāi)發(fā)學(xué)習(xí)各種網(wǎng)絡(luò)爬蟲(chóng)相關(guān)的文獻(xiàn)資料,模擬網(wǎng)絡(luò)上面關(guān)于爬蟲(chóng)開(kāi)發(fā)的開(kāi)源項(xiàng)目,在環(huán)境為windows操作系統(tǒng)下進(jìn)行開(kāi)發(fā)和測(cè)試。

基于python的網(wǎng)絡(luò)爬蟲(chóng)python語(yǔ)言簡(jiǎn)介作為開(kāi)源編程語(yǔ)言,Python可以實(shí)現(xiàn)很多功能,其語(yǔ)法相對(duì)簡(jiǎn)單易懂,有很多優(yōu)點(diǎn),它廣泛使用于各種通用操作系統(tǒng)。此外,由于具有直接面對(duì)編程對(duì)象的特性,因此可以簡(jiǎn)化編程過(guò)程,并且可以大大提高編程效率。最重要的是,Pytohon語(yǔ)言有很多優(yōu)點(diǎn)的網(wǎng)絡(luò)協(xié)議庫(kù)。這可以為獨(dú)立識(shí)別、分層存儲(chǔ)、程序員創(chuàng)造各種類型的編程邏輯[5]。網(wǎng)絡(luò)爬蟲(chóng)網(wǎng)絡(luò)爬蟲(chóng)的定義網(wǎng)絡(luò)爬蟲(chóng)是一個(gè)可以根據(jù)某些設(shè)定的邏輯,自動(dòng)從網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)抓取。與傳統(tǒng)的瀏覽器信息搜索方式相比,網(wǎng)絡(luò)爬蟲(chóng)通過(guò)搜索網(wǎng)址及時(shí)或定期地搜索用戶需求的內(nèi)容并將搜索結(jié)果發(fā)送給用戶的過(guò)程更準(zhǔn)確、信息量更大、更符合用戶的在線需求[6]。對(duì)于python而言,它是被廣泛應(yīng)用于爬蟲(chóng)系統(tǒng)設(shè)計(jì)的語(yǔ)言之一,這不僅是因?yàn)镻ython在庫(kù)的設(shè)計(jì)過(guò)程中承載了爬蟲(chóng)系統(tǒng)設(shè)計(jì)的必要基礎(chǔ),而且更重要的是在Python語(yǔ)言里開(kāi)發(fā)了的一個(gè)名為Scrapy的框架被廣泛應(yīng)用于爬蟲(chóng)系統(tǒng)中,該框架被廣泛應(yīng)用于當(dāng)前的計(jì)算機(jī)操作系統(tǒng)中,它的主要優(yōu)點(diǎn)是能夠有效解決抓取網(wǎng)頁(yè)因被多次編寫(xiě)而產(chǎn)生大量HTML源代碼從而造成信息堆積的問(wèn)題,運(yùn)用這一框架,只需要在框架中設(shè)置爬蟲(chóng)模塊即可以爬取該網(wǎng)頁(yè)的數(shù)據(jù)[7]。根據(jù)系統(tǒng)的結(jié)構(gòu)功能,網(wǎng)絡(luò)爬蟲(chóng)可以分為四種類型:(1)通用型網(wǎng)絡(luò)爬蟲(chóng)通用型網(wǎng)絡(luò)爬蟲(chóng)主要用于搜索引擎,之所以對(duì)爬取的速度和存儲(chǔ)空間要求比較高是因?yàn)樗廊〉姆秶鷱V,數(shù)量多。(2)聚焦型網(wǎng)絡(luò)爬蟲(chóng)聚焦型網(wǎng)絡(luò)爬蟲(chóng)是選擇性地爬取一開(kāi)始便定義好的需求的數(shù)據(jù),它不僅節(jié)省了網(wǎng)絡(luò)資源,也滿足特定人員的特定需求。(3)增量型網(wǎng)絡(luò)爬蟲(chóng)增量型網(wǎng)絡(luò)爬蟲(chóng)只會(huì)產(chǎn)生新的爬取頁(yè)面或數(shù)據(jù)頁(yè)面被更改時(shí)來(lái)進(jìn)行數(shù)據(jù)抓取,它有效降低數(shù)據(jù)量下載,減少了時(shí)間和空間的浪費(fèi)。(4)深度網(wǎng)絡(luò)爬蟲(chóng)深度網(wǎng)絡(luò)爬蟲(chóng)需要先經(jīng)過(guò)注冊(cè)用戶登錄,或者是提交相應(yīng)的表單之后才可以開(kāi)始不斷地爬取網(wǎng)頁(yè)的數(shù)據(jù)[8]。網(wǎng)絡(luò)爬蟲(chóng)的基本流程網(wǎng)絡(luò)爬蟲(chóng)一般由四個(gè)流程進(jìn)行:a).發(fā)送請(qǐng)求通過(guò)http庫(kù)將請(qǐng)求發(fā)送到目標(biāo)網(wǎng)站,即發(fā)送給目標(biāo)站點(diǎn)一個(gè)Request,這個(gè)Request可以包含headers等信息,然后等待服務(wù)器響應(yīng)。b).獲取響應(yīng)內(nèi)容請(qǐng)求發(fā)送結(jié)束之后,等待服務(wù)器正常響應(yīng),響應(yīng)結(jié)束會(huì)返回一個(gè)響應(yīng)內(nèi)容response,這個(gè)response可以是結(jié)構(gòu)化數(shù)據(jù),如html、json數(shù)據(jù)包等,也可以是非結(jié)構(gòu)化數(shù)據(jù),如圖片或視頻等。c).解析內(nèi)容一旦接受到響應(yīng)內(nèi)容時(shí),便可以提取里面的數(shù)據(jù)。當(dāng)解析的是html數(shù)據(jù),則可以使用正則表達(dá)式或第三方解析庫(kù)如Beautifulsoup,pyquery等來(lái)提取數(shù)據(jù);若是解析json數(shù)據(jù),則可以導(dǎo)入json模塊,將數(shù)據(jù)轉(zhuǎn)化為python類型數(shù)據(jù)然后進(jìn)行提取;若是非結(jié)構(gòu)化數(shù)據(jù)的,直接進(jìn)行提取后保存。d).保存數(shù)據(jù)從response中解析到數(shù)據(jù)一般可寫(xiě)入數(shù)據(jù)庫(kù)或者寫(xiě)入文本保存。scrapy框架scrapy框架的基本原理在開(kāi)發(fā)python的網(wǎng)絡(luò)爬蟲(chóng)中可以優(yōu)先選擇scrapy。它主要包括引擎(Engine),調(diào)度器(Scheduler),下載器(Downloader),爬蟲(chóng)(Spider),項(xiàng)目管道(Pipeline),下載器中間件(Downloader-Middlewares),爬蟲(chóng)中間件(Spider-Middlewares)等七個(gè)組件。如圖2-1所示。圖2-1.Scrapy框架架構(gòu)圖(1)引擎(Engine)引擎負(fù)責(zé)和進(jìn)行管理控制整個(gè)系統(tǒng)框架所有一切組件之間的數(shù)據(jù)流信息,而且在某些動(dòng)作發(fā)生時(shí)觸發(fā)相應(yīng)的事務(wù),整個(gè)scrapy框架的核心控制組件便是引擎。(2)調(diào)度器(Scheduler)通過(guò)調(diào)度器,scrapy框架可以控制哪個(gè)網(wǎng)頁(yè)優(yōu)先爬取,即控制網(wǎng)頁(yè)的爬取優(yōu)先級(jí)。它也含有去重功能,能夠去掉重復(fù)的網(wǎng)頁(yè)。當(dāng)接受引擎?zhèn)鬟^(guò)來(lái)的請(qǐng)求后便按照排序傳遞給下載器。(3)下載器(Downloader)下載器采用異步方式與遠(yuǎn)程服務(wù)器建立連接,下載網(wǎng)頁(yè)數(shù)據(jù)并將數(shù)據(jù)返回給引擎。它也可以接收調(diào)度器傳過(guò)來(lái)的請(qǐng)求,再根據(jù)要求從互聯(lián)網(wǎng)中下載網(wǎng)頁(yè)內(nèi)容,并將數(shù)據(jù)傳送給爬蟲(chóng)。(4)爬蟲(chóng)(Spider)爬蟲(chóng)是Scrapy框架核心之一,網(wǎng)頁(yè)解析是它的主要工作,然后從目標(biāo)網(wǎng)頁(yè)的數(shù)據(jù)里來(lái)進(jìn)行提取。一個(gè)爬蟲(chóng)項(xiàng)目通??梢該碛卸鄠€(gè)爬蟲(chóng),而且每個(gè)爬蟲(chóng)r可以解析多個(gè)網(wǎng)站,爬取多個(gè)網(wǎng)站的數(shù)據(jù)。它由編碼人員負(fù)責(zé)編寫(xiě)來(lái)解析請(qǐng)求網(wǎng)頁(yè)后返回?cái)?shù)據(jù)的代碼,從數(shù)據(jù)中提取出Item和新的網(wǎng)頁(yè)地址,并把Item傳給Itempipeline組件。(5)項(xiàng)目管道(Pipeline)項(xiàng)目管道負(fù)責(zé)處理爬蟲(chóng)提取的數(shù)據(jù),常見(jiàn)的處理如驗(yàn)證有效性、清理不需要的信息及數(shù)據(jù)存儲(chǔ)等。通常需要多個(gè)數(shù)據(jù)管道,每個(gè)管道進(jìn)行一種數(shù)據(jù)處理。(6)下載器中間件(Downloader-Middlewares)下載中間件位于引擎和下載器之間,是處理引擎和下載器之間的請(qǐng)求和響應(yīng)的重要部分之一。(7)爬蟲(chóng)中間件(Spider-Middlewares)爬蟲(chóng)中間件位于引擎和爬蟲(chóng)之間,是處理引擎和爬蟲(chóng)之間的請(qǐng)求和響應(yīng)的重要部分之一[9]。scrapy框架的基本流程如圖2-2所示,是scrapy框架的流程圖,主要包含8個(gè)流程:圖2-2.Scrapy框架流程圖(1)引擎向爬蟲(chóng)文件索要第一個(gè)要爬取的網(wǎng)頁(yè)地址。(2)引擎將網(wǎng)頁(yè)地址信息交給調(diào)度器,調(diào)度器將網(wǎng)頁(yè)地址入隊(duì)列。(3)url地址出隊(duì)列,這時(shí)候的url地址為要爬取的內(nèi)容的網(wǎng)頁(yè)地址,由調(diào)度器傳遞給引擎。(4)引擎?zhèn)鬟f給下載器地址,下載器開(kāi)始爬取。(5)獲取到響應(yīng)之后,下載器將響應(yīng)的內(nèi)容傳遞給引擎。(6)引擎將響應(yīng)傳遞給爬蟲(chóng),爬蟲(chóng)開(kāi)始解析數(shù)據(jù)。(7)爬蟲(chóng)提取數(shù)據(jù)之后,將所需的數(shù)據(jù)傳遞給引擎。若此時(shí)還有必須繼續(xù)跟進(jìn)的網(wǎng)頁(yè)地址(即二級(jí)頁(yè)面等),則重復(fù)第一個(gè)步驟直至結(jié)束。(8)引擎將所需信息數(shù)據(jù)傳遞給管道,由管道進(jìn)行保存等操作。分布式網(wǎng)絡(luò)爬蟲(chóng)原理Scrapy-redis是scrapy實(shí)現(xiàn)分布式功能的主要部分。依靠主從關(guān)系,在這里將核心服務(wù)器稱為主服務(wù)器,將用于運(yùn)行爬蟲(chóng)項(xiàng)目的稱為從服務(wù)器。爬取網(wǎng)頁(yè)數(shù)據(jù)運(yùn)用scrapy方式,第一步給爬蟲(chóng)文件一個(gè)或一些初始地址start_urls,然后爬蟲(chóng)文件開(kāi)始訪問(wèn)里面的網(wǎng)絡(luò)地址,再根據(jù)編碼人員設(shè)計(jì)的表達(dá)式來(lái)提取里面的數(shù)據(jù),也可以是解析和抓取其它二級(jí)網(wǎng)頁(yè)信息數(shù)據(jù)等。運(yùn)用redis數(shù)據(jù)庫(kù),在這里redis數(shù)據(jù)庫(kù)只需要存儲(chǔ)url,不需要存儲(chǔ)爬取到的數(shù)據(jù),redis數(shù)據(jù)庫(kù)會(huì)特殊設(shè)定不一樣的列表字段,來(lái)標(biāo)記這些不同的網(wǎng)站地址,這樣可以達(dá)到爬取不重復(fù)網(wǎng)絡(luò)地址的效果。在主服務(wù)器上運(yùn)用redis數(shù)據(jù)庫(kù),不管有多少個(gè)從服務(wù)器,從服務(wù)器只能獲取主服務(wù)器里面redis數(shù)據(jù)庫(kù)存儲(chǔ)的網(wǎng)絡(luò)地址。由于scrapy-redis自身的隊(duì)列擁有特殊的機(jī)制,從服務(wù)器得到的網(wǎng)絡(luò)地址是不會(huì)相互沖突的。在每個(gè)從服務(wù)器結(jié)束數(shù)據(jù)抓取之后,會(huì)把爬取到的數(shù)據(jù)匯合并傳輸?shù)降街鞣?wù)器上,這個(gè)時(shí)候爬取到的數(shù)據(jù)不再是存進(jìn)redis數(shù)據(jù)庫(kù)里,而是存進(jìn)mysql等儲(chǔ)存數(shù)據(jù)的數(shù)據(jù)庫(kù)。這種措施的另一個(gè)優(yōu)點(diǎn)便是程序的移植性很強(qiáng),只需要修改路徑問(wèn)題,把從服務(wù)器上的爬蟲(chóng)項(xiàng)目復(fù)制粘貼到到其他從服務(wù)器上,便可以運(yùn)行相同的爬蟲(chóng)程序[10]。

網(wǎng)絡(luò)爬蟲(chóng)模型的設(shè)計(jì)和實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)的爬取對(duì)象本文實(shí)現(xiàn)的網(wǎng)絡(luò)爬蟲(chóng)是爬取騰訊招聘網(wǎng)站招聘信息,爬取招聘網(wǎng)站的的一級(jí)頁(yè)面,里面包含職位名稱、職位類別以及工作地點(diǎn)等,之后再通過(guò)分析將每個(gè)職位的二級(jí)頁(yè)面爬取下來(lái),之后再爬取二級(jí)頁(yè)面數(shù)據(jù),包含職位責(zé)任和職位要求。網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)功能架構(gòu)分布式爬蟲(chóng)抓取系統(tǒng),如圖3-1所示,主要包含以下功能:圖3-1分布式爬蟲(chóng)抓取系統(tǒng)架構(gòu)圖(1)爬蟲(chóng):爬取策略的設(shè)計(jì)、提取數(shù)據(jù)設(shè)計(jì)、增量爬取、請(qǐng)求去重(2)中間件:爬蟲(chóng)防屏蔽中間件(3)數(shù)據(jù)存儲(chǔ):抓取字段設(shè)計(jì)、數(shù)據(jù)存儲(chǔ)本文將騰訊招聘網(wǎng)站為主題的網(wǎng)絡(luò)爬蟲(chóng)劃為爬蟲(chóng)模塊、中間件模塊、數(shù)據(jù)存儲(chǔ)模塊3個(gè)部分。其中爬蟲(chóng)模塊用來(lái)分析提取url地址,實(shí)施招聘主題信息網(wǎng)頁(yè)的抓取,在滿足爬取規(guī)則的范圍內(nèi)抓取符合招聘主題信息的網(wǎng)頁(yè)數(shù)據(jù);中間件模塊主要負(fù)責(zé)添加user-agent請(qǐng)求頭信息模擬瀏覽器登錄,實(shí)現(xiàn)爬蟲(chóng)防屏蔽功能;數(shù)據(jù)存儲(chǔ)模塊主要將抓取的網(wǎng)頁(yè)數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中。網(wǎng)絡(luò)爬蟲(chóng)流程設(shè)計(jì)由scrapy的結(jié)構(gòu)分析可知,網(wǎng)絡(luò)爬蟲(chóng)從start_url開(kāi)始,根據(jù)設(shè)計(jì)爬蟲(chóng)并定義的url地址,得到積極響應(yīng)后,若是html數(shù)據(jù),則可以運(yùn)用正則表達(dá)式或者Xpath去提取數(shù)據(jù);若是json類型的,則導(dǎo)入json模塊加以提取。若是從一級(jí)頁(yè)面中獲取到更多鏈接,則將這些鏈接添加進(jìn)待下載隊(duì)列當(dāng)中,對(duì)它們進(jìn)行去重和排序操作,然后等待調(diào)度器的調(diào)度。在整個(gè)系統(tǒng)中,鏈接可以分為兩類:一類是目錄頁(yè)鏈接,里面包含著崗位名稱和崗位類型,以及其它鏈接,此時(shí)我們需要提及崗位名稱、崗位類型和下一頁(yè)的鏈接;一類是內(nèi)容詳情頁(yè)鏈接,里面包含著崗位職責(zé)和崗位要求的信息。網(wǎng)絡(luò)需要從每一個(gè)目錄頁(yè)鏈接當(dāng)中來(lái)提取所需要的數(shù)據(jù)之后,加入到待下載隊(duì)列并準(zhǔn)備進(jìn)一步爬取。爬取流程如圖3-2所示。圖3-2.爬蟲(chóng)流程設(shè)計(jì)圖由此流程圖便知,首先要先獲取一個(gè)start_url地址,才可以進(jìn)行爬取任務(wù)。所以需要開(kāi)始進(jìn)行網(wǎng)頁(yè)分析。騰訊招聘網(wǎng)頁(yè)分析判斷網(wǎng)頁(yè)的靜/動(dòng)態(tài)加載首先進(jìn)入騰訊招聘網(wǎng)站(/),我們可以看到如圖3-3所示的騰訊招聘網(wǎng)站主頁(yè),點(diǎn)擊“查看工作崗位”即可得到此招聘網(wǎng)站的大量信息。圖3-3.騰訊招聘網(wǎng)站主頁(yè)單擊點(diǎn)開(kāi)之后便是招聘網(wǎng)站的分頁(yè),如圖3-4所示,這時(shí)候可以依據(jù)不同的地區(qū)選擇想要了解的職位信息。以中國(guó)的四個(gè)一線城市(北京、上海、廣州、深圳)為例,主要分析這四大地區(qū)的網(wǎng)頁(yè)地址。圖3-4.騰訊招聘網(wǎng)站分頁(yè)判斷網(wǎng)頁(yè)靜/動(dòng)態(tài)加載,主要依據(jù)是查看網(wǎng)頁(yè)源代碼中有沒(méi)有具體數(shù)據(jù),有數(shù)據(jù)則為靜態(tài)加載,無(wú)數(shù)據(jù)則為動(dòng)態(tài)加載。靜態(tài)加載的數(shù)據(jù)主要是html數(shù)據(jù),提取數(shù)據(jù)可以使用正則表達(dá)式或xpath方法。動(dòng)態(tài)加載則需要利用控制臺(tái)并根據(jù)頁(yè)面的動(dòng)作來(lái)抓取網(wǎng)絡(luò)數(shù)據(jù)包,即json數(shù)據(jù)包的url地址。以騰訊招聘網(wǎng)站為例,由于網(wǎng)頁(yè)源代碼中沒(méi)有具體數(shù)據(jù),則為Ajax動(dòng)態(tài)加載,根據(jù)控制臺(tái)和頁(yè)面刷新可以在XHR上面得到三個(gè)異步加載的數(shù)據(jù)包,在Query文件的Preview中發(fā)現(xiàn)了需要爬取的數(shù)據(jù),如圖3-5所示。圖3-5.招聘網(wǎng)站網(wǎng)頁(yè)信息分析一級(jí)網(wǎng)頁(yè)獲取相應(yīng)數(shù)據(jù) 在XHR得到j(luò)son數(shù)據(jù)包,此時(shí)需要在Headers上面查找有用的信息。如圖3-6所示,需要提取到的url地址便是圖中RequestURL。圖3-6.一級(jí)頁(yè)面Headers信息RequestURL(一級(jí)頁(yè)面):/tencentcareer/api/post/Query?timestamp=1584696974713&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex=1&pageSize=10&language=zh-cn&area=cn然而此url地址比較復(fù)雜,所以需要分析每個(gè)參數(shù)。在Headers底端的QueryStringParameters(查詢參數(shù))欄便有著這個(gè)網(wǎng)頁(yè)地址的所有參數(shù)。在獲取到北京、上海、廣州、深圳以及不分地區(qū)的招聘網(wǎng)頁(yè)地址后,分別得到它們的參數(shù)區(qū)別,如圖3-7所示。圖3-7.北京、上海、廣州、深圳以及不分地區(qū)的招聘網(wǎng)頁(yè)地址參數(shù)在這些參數(shù)中,可分析得到,如表3-1所示。表3-1一級(jí)頁(yè)面各參數(shù)所代表的含義timestamp:時(shí)間戳cityId:‘2’為北京,‘3’為上海,‘5’為廣州,‘1’為深圳,‘’為不分地區(qū)pageIndex:頁(yè)數(shù)pageSize:10個(gè)(招聘職位)由于刪去timestamp這個(gè)參數(shù)后依然可以得到j(luò)son數(shù)據(jù)包,所以重要的參數(shù)分別為cityId、pageIndex、pageSize。可得到一級(jí)頁(yè)面one_url:/tencentcareer/api/post/Query?&countryId=&cityId={}&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex={}&pageSize=10&language=zh-cn&area=cn最后再運(yùn)用format方法即可將字符串分別帶入,得到一個(gè)完整的url。代入?yún)?shù)后打開(kāi)此鏈接,所得到的信息便是我們需要的json數(shù)據(jù)包,里面包含所有招聘職業(yè)的職業(yè)名稱、職業(yè)類別和工作地點(diǎn)等大量數(shù)據(jù),如圖3-8所示。圖3-8.一級(jí)頁(yè)面Json數(shù)據(jù)包在這個(gè)json數(shù)據(jù)包中,我們可以分析得到想要的數(shù)據(jù),如表3-2所示。表3-2一級(jí)頁(yè)面各參數(shù)所代表的含義RecruitPostName:職位名稱CategoryName:職位類別LocationName:工作地點(diǎn)根據(jù)圖3-8展示的json數(shù)據(jù)包,我們可以知道這些數(shù)據(jù)是需要根據(jù)字典的方式來(lái)進(jìn)行提取,首先由一個(gè)大字典含有的‘Data’鍵來(lái)對(duì)應(yīng)值,這個(gè)值為所需要提取的第二個(gè)字典,根據(jù)第二個(gè)字典的鍵‘Posts’來(lái)獲取數(shù)據(jù)?!甈osts’對(duì)應(yīng)的值為一個(gè)列表,在列表中提取字典,所以我們可以根據(jù)以上信息,運(yùn)用for循環(huán)來(lái)編寫(xiě)提取數(shù)據(jù)的代碼:forjobinhtml['Data']['Posts']:#職位名稱=job['RecruitPostName']#職位列別=job['CategoryName']#工作地點(diǎn)=job['LocationName']在這個(gè)數(shù)據(jù)包中沒(méi)有我們想要的職位職責(zé)和職位要求,所以就需要分析二級(jí)網(wǎng)網(wǎng)頁(yè)來(lái)獲取。分析二級(jí)網(wǎng)頁(yè)獲取相應(yīng)數(shù)據(jù) 二級(jí)頁(yè)面,是在一級(jí)頁(yè)面中點(diǎn)開(kāi)一個(gè)招聘職位得到的網(wǎng)頁(yè),同理可以得到二級(jí)頁(yè)面的相應(yīng)數(shù)據(jù),如圖3-9所示。圖3-9.二級(jí)頁(yè)面Headers信息RequestURL(二級(jí)頁(yè)面):/tencentcareer/api/post/ByPostId?timestamp=1584717244516&postId=1237234611482791936&language=zh-cn分析三個(gè)不同職位的網(wǎng)頁(yè)鏈接參數(shù),如圖3-10所示,將參數(shù)進(jìn)行對(duì)比,可以得到postId是不一致的,可以發(fā)現(xiàn)不同職位間都有著不同的postId來(lái)于此對(duì)應(yīng),而且這個(gè)postId在一級(jí)頁(yè)面的json數(shù)據(jù)包中也有包含,所以可以根據(jù)一級(jí)頁(yè)面得到的postId來(lái)獲取二級(jí)頁(yè)面的數(shù)據(jù)。圖3-10.網(wǎng)頁(yè)參數(shù)對(duì)比因此得到二級(jí)頁(yè)面地址為:/tencentcareer/api/post/ByPostId?&postId={}&language=zh-cn利用format方法代入一個(gè)職位的postId,即可得到相應(yīng)的json數(shù)據(jù)包,如圖3-11所示。圖3-11.二級(jí)頁(yè)面json數(shù)據(jù)包在這個(gè)json數(shù)據(jù)包中,我們可以分析得到想要的數(shù)據(jù)如表3-3所示。表3-3二級(jí)頁(yè)面各參數(shù)所代表的含義Responsibility:職位責(zé)任Requirement:職位要求在這些json數(shù)據(jù)包中,利用提取字典的方式便可以從中爬取到想要的數(shù)據(jù)。分析完一級(jí)頁(yè)面和二級(jí)頁(yè)面,即刻開(kāi)始設(shè)計(jì)爬蟲(chóng)的具體實(shí)現(xiàn)。網(wǎng)絡(luò)爬蟲(chóng)的具體實(shí)現(xiàn)創(chuàng)建spider項(xiàng)目文件第一步需要建立一個(gè)Scrapy項(xiàng)目文件,即在終端中運(yùn)行更改目錄的命令,把當(dāng)前位置切換到將要用于保存爬蟲(chóng)代碼的文件夾中,運(yùn)行命令“scrapystartproject+自定義的爬蟲(chóng)目錄名稱”,文件夾中會(huì)自動(dòng)生成爬蟲(chóng)的項(xiàng)目框架。第二步切換到該爬蟲(chóng)目錄,可以看到該目錄文件夾里的內(nèi)容:項(xiàng)目配置文件、python模塊、item文件、pipelines管道文件、setting文件和spider目錄文件夾等幾個(gè)部分。最后在終端輸入命令“scrapygenspider+爬蟲(chóng)文件名+爬蟲(chóng)對(duì)象域名”,即可開(kāi)始進(jìn)行爬蟲(chóng)項(xiàng)目設(shè)計(jì)。定義Item容器Item負(fù)責(zé)定義以及儲(chǔ)存獲取的網(wǎng)絡(luò)數(shù)據(jù),而且定義Item容器是為了消除由于拼寫(xiě)錯(cuò)誤帶來(lái)的麻煩,而且它也增加了額外的保護(hù)機(jī)制。依據(jù)實(shí)際情況在item.py中對(duì)提取到的數(shù)據(jù)編寫(xiě)相關(guān)的字段,比如職業(yè)名稱、職業(yè)類別、工作地點(diǎn)、職業(yè)責(zé)任和職業(yè)要求。 Item.py關(guān)鍵代碼如下:importscrapyclassTcrecruitItem(scrapy.Item):#名稱tc_name=scrapy.Field()#類別tc_type=scrapy.Field()#工作地點(diǎn)tc_location=scrapy.Field()#職責(zé)tc_duty=scrapy.Field()#要求tc_require=scrapy.Field()pass編寫(xiě)爬蟲(chóng)程序爬蟲(chóng)程序spider.py用于爬取一級(jí)頁(yè)面及其包含的數(shù)據(jù)、二級(jí)頁(yè)面及其包含的數(shù)據(jù),它的實(shí)現(xiàn)內(nèi)容包括:初始下載的鏈接地址即start_urls、后續(xù)跟進(jìn)網(wǎng)頁(yè)的URL鏈接即two_url、采用的算法、提取數(shù)據(jù)生成item。在這里,以中國(guó)四大一線城市(北京、上海、廣州、深圳)以及全國(guó)范圍為例,根據(jù)騰訊招聘網(wǎng)站地址可以得到這五個(gè)地區(qū)的參數(shù),再用format()方法將參數(shù)代入進(jìn)網(wǎng)站地址里便可以得到地區(qū)對(duì)應(yīng)的json數(shù)據(jù)包,相關(guān)代碼如下:classTcrecruitSpider(scrapy.Spider):name='tcrecruit'allowed_domains=['']a=''city_url='/tencentcareer/api/post/'\'Query?timestamp=1584608233122&countryId=&cityId='#選擇要爬取的地區(qū)choice=input('1.深圳2.北京3.上海4.廣州5.全部\n請(qǐng)選擇:')ifchoice=='1':a=1elifchoice=='2':a=2elifchoice=='3':a=3elifchoice=='4':a=5else:a=''#將網(wǎng)絡(luò)地址合并one_url=city_url+str(a)+'&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex={}&pageSize=10&language=zh-cn&area=cn'two_url='/tencentcareer/api/post/ByPostId?&postId={}&language=zh-cn'start_urls=[one_url.format(1)]得到j(luò)son數(shù)據(jù)包后,要編寫(xiě)翻頁(yè)的函數(shù)以便能獲取大量的職位信息,這里運(yùn)用for循環(huán)進(jìn)行翻頁(yè)操作,相關(guān)代碼如下:defparse(self,response):forpage_indexinrange(1,21):url=self.one_url.format(page_index)yieldscrapy.Request(url=url,callback=self.parse_one)分析招聘主題信息爬蟲(chóng)要爬取的數(shù)據(jù)信息包括職位名稱、職位類別、工作地點(diǎn)、職位責(zé)任和職位要求;觀察分析騰訊招聘頁(yè)面的json數(shù)據(jù)包,再根據(jù)python自帶的json.loads()方法將json類型的數(shù)據(jù)變成python的數(shù)據(jù)類型,然后用字典提取數(shù)據(jù)方式將所需要的數(shù)據(jù)提取出來(lái)。在一級(jí)頁(yè)面能夠獲取到二級(jí)頁(yè)面的必備參數(shù)postId,然后將postId拼接到two_url便可以進(jìn)入二級(jí)頁(yè)面的json數(shù)據(jù)包去提取數(shù)據(jù)。重要代碼如下:defparse_one(self,response):html=json.loads(response.text)forjobinhtml['Data']['Posts']:item=TcrecruitItem()#職位名稱、職位類別、工作地點(diǎn)item['tc_name']=job['RecruitPostName']item['tc_type']=job['CategoryName']item['tc_location']=job['LocationName']#postID:拼接二級(jí)頁(yè)面的地址post_id=job['PostId']two_url=self.two_url.format(post_id)#交給調(diào)度器yieldscrapy.Request(url=two_url,meta={'item':item},callback=self.parse_two)defparse_two(self,response):item=response.meta['item']html=json.loads(response.text)#職位責(zé)任item['tc_duty']=html['Data']['Responsibility']#職位要求item['tc_require']=html['Data']['Requirement']yielditem編寫(xiě)pipelines.py若要在函數(shù)里面加上可以在終端輸出數(shù)據(jù)的功能,只需要添加相關(guān)代碼:classTcrecruitPipeline(object):defprocess_item(self,item,spider):print(dict(item))returnitem接著便是保存數(shù)據(jù),首先要導(dǎo)入pymysql庫(kù),然后依次編寫(xiě)自己數(shù)據(jù)庫(kù)信息,例如用戶名、密碼、表名等;然后再將爬取的數(shù)據(jù)插入相對(duì)于的位置,需要定義一個(gè)列表,然后用列表來(lái)進(jìn)行傳遞參數(shù);接著提交到數(shù)據(jù)庫(kù)去自動(dòng)執(zhí)行代碼;最后關(guān)閉數(shù)據(jù)庫(kù)。相關(guān)代碼如下:importpymysqlclassTcrecruitMysqlPipeline(object):defopen_spider(self,spider):#打開(kāi)數(shù)據(jù)庫(kù)并輸入端口號(hào)賬號(hào)密碼等信息self.db=pymysql.connect('','root','moon631166427','tencentdb',charset='utf8')self.cursor=self.db.cursor()defprocess_item(self,item,spider):ins='insertintotcrecruitdatavalues(%s,%s,%s,%s,%s)'job_list=[item['tc_name'],item['tc_type'],item['tc_location'],item['tc_duty'],item['tc_require']]self.cursor.execute(ins,job_list)mit()returnitemdefclose_spider(self,spider):self.cursor.close()self.db.close()當(dāng)然,保存數(shù)據(jù)的前提需要在數(shù)據(jù)庫(kù)創(chuàng)建能與存儲(chǔ)爬蟲(chóng)數(shù)據(jù)相對(duì)應(yīng)的表格。如圖3-12所示。圖3-12.創(chuàng)建數(shù)據(jù)庫(kù)修改setting.py離編寫(xiě)完scrapy網(wǎng)絡(luò)爬蟲(chóng)程序只差最后一步,便是修改setting.py的參數(shù)和添加scrapy-redis。(1)修改最大并發(fā)量,最好將并發(fā)量修改小一點(diǎn),這個(gè)參數(shù)越小,爬蟲(chóng)程序便越安全,但爬取時(shí)間會(huì)變長(zhǎng)一些。CONCURRENT_REQUESTS=10(2)修改下載延遲參數(shù),這里將延遲參數(shù)調(diào)至0.3s:DOWNLOAD_DELAY=0.3(3)修改REQUEST_HEADERS請(qǐng)求頭,這里是由下載中間件完成,添加user-agent模擬瀏覽器瀏覽爬取對(duì)象的網(wǎng)絡(luò)地址:DEFAULT_REQUEST_HEADERS={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language':'en','User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64;rv:6.0)Gecko/20100101Firefox/6.0'}(4)修改item_pipeline項(xiàng)目管道,添加數(shù)據(jù)庫(kù)(若想將數(shù)據(jù)存儲(chǔ)進(jìn)redis,也可以在這里添加redis相對(duì)應(yīng)的管道):ITEM_PIPELINES={'Tcrecruit.pipelines.TcrecruitPipeline':300,'Tcrecruit.pipelines.TcrecruitMysqlPipeline':250,#'scrapy_redis.pipelines.RedisPipeline':250,}(5)添加scrapy-redis:使用scrapy_redis的調(diào)度器SCHEDULER="scrapy_redis.scheduler.Scheduler"使用scrapy_redis自帶的去重機(jī)制DUPEFILTER_CLASS="scrapy_redis.dupefilter.RFPDupeFilter"爬取結(jié)束后清除請(qǐng)求指紋(也可以不清除):SCHEDULER_PERSIST=True定義redis主機(jī)的地址和端口號(hào)(這里REDIS_HOST為空時(shí),處理器會(huì)自己尋找本機(jī)電腦的地址):REDIS_HOST=''REDIS_PORT=6379

第4章系統(tǒng)功能測(cè)試與實(shí)現(xiàn)爬蟲(chóng)運(yùn)行測(cè)試在CPU為CORE(TM)i5-3317,內(nèi)存為8G,操作系統(tǒng)為WIN10-64位的戴爾筆記本,pycharm版本為2019.2,python版本為3.7.3的環(huán)境下,通過(guò)在pycharm建立一個(gè)run.py,導(dǎo)入cmdline庫(kù),編寫(xiě)命令“cmdline.execute(‘scrapycrawltcrecruit‘.split())”,運(yùn)行run.py來(lái)啟動(dòng)爬蟲(chóng)進(jìn)行騰訊招聘信息爬取測(cè)試選擇要爬取的地區(qū)如圖4-1所示,爬蟲(chóng)開(kāi)始運(yùn)行,總共可以爬取5個(gè)地區(qū)。以深圳地區(qū)為例子,輸入深圳地區(qū)的相應(yīng)數(shù)字,即可開(kāi)始爬取騰訊深圳地區(qū)招聘職業(yè)的數(shù)據(jù)。圖4-1.選擇深圳地區(qū)爬蟲(chóng)爬取過(guò)程如圖4-2所示,為爬蟲(chóng)爬取騰訊深圳地區(qū)招聘職業(yè)的信息,從圖中可以看到‘tc_name’正確對(duì)應(yīng)了招聘職位的職位名稱;‘tc_type’正確對(duì)應(yīng)了職位類別;‘tc_location’正確對(duì)應(yīng)了工作地點(diǎn),即為深圳地區(qū);‘tc_duty’正確對(duì)應(yīng)了職位責(zé)任;‘tc_require’正確對(duì)應(yīng)了職位要求。圖4-2.爬蟲(chóng)爬取過(guò)程數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)如圖4-3所示,進(jìn)入數(shù)據(jù)庫(kù)并查詢數(shù)據(jù)表里面的數(shù)據(jù);圖4-3.查詢數(shù)據(jù)表如圖4-4,為數(shù)據(jù)表里面呈現(xiàn)出來(lái)的內(nèi)容,至此可以說(shuō)明數(shù)據(jù)庫(kù)成功存儲(chǔ)來(lái)自爬蟲(chóng)項(xiàng)目爬取到的數(shù)據(jù)。圖4-4.數(shù)據(jù)表格內(nèi)容爬蟲(chóng)爬取結(jié)束如圖4-5所示,為爬蟲(chóng)成功運(yùn)行并結(jié)束之后顯示的內(nèi)容,由于設(shè)定爬取20頁(yè),每頁(yè)20個(gè)職位,所以總計(jì)成功爬取到的職位個(gè)數(shù)為200個(gè)。圖4-5.爬蟲(chóng)運(yùn)行結(jié)束如圖4-6所示,打開(kāi)RedisDesktopManager,也可以查到成功爬取的職位個(gè)數(shù)為200個(gè),并且這200個(gè)職位在scrapy-redis的作用下是不會(huì)重復(fù)的。圖4-6.Redis數(shù)據(jù)庫(kù)從以上爬蟲(chóng)項(xiàng)目運(yùn)行的結(jié)果可以看出,爬蟲(chóng)爬取20頁(yè)共計(jì)200條,與網(wǎng)頁(yè)實(shí)際記錄條數(shù)相符,運(yùn)行穩(wěn)定。爬蟲(chóng)獲取的數(shù)據(jù)均為近期發(fā)布的、想要搜索的“深圳地區(qū)”范圍內(nèi)的騰訊職業(yè)招聘信息,搜集的職業(yè)招聘信息基本符合所要查詢職位的相關(guān)信息,可以滿足就業(yè)查詢的基本需求。在今后的實(shí)際運(yùn)行過(guò)程中可以添加其他地區(qū)的對(duì)應(yīng)參數(shù),運(yùn)行后便可以選擇其它乃至全國(guó)的相關(guān)招聘信息,以服務(wù)更多不同地區(qū)的人。因此,騰訊職業(yè)招聘的爬蟲(chóng)技術(shù)可以作為服務(wù)于選擇就業(yè)人士的技術(shù)手段,幫助其以快速獲取各類招聘信息。

結(jié)束語(yǔ)在這個(gè)網(wǎng)絡(luò)技術(shù)發(fā)達(dá),數(shù)據(jù)充沛的時(shí)代,如何獲取網(wǎng)絡(luò)數(shù)據(jù)是一份很重要的工作。相關(guān)研究人員提出:網(wǎng)絡(luò)上百分之六十的流量均為網(wǎng)絡(luò)爬蟲(chóng)爬取的[11]。爬蟲(chóng)作為獲取數(shù)據(jù)的重要手段之一,在各種網(wǎng)站數(shù)據(jù)中得到了廣泛的應(yīng)用。本文主要從網(wǎng)絡(luò)爬蟲(chóng)、Python語(yǔ)言與Scrapy框架幾個(gè)方面進(jìn)行闡述,簡(jiǎn)單介紹了騰訊招聘信息主題網(wǎng)絡(luò)爬蟲(chóng)的工作流程、開(kāi)發(fā)與實(shí)現(xiàn)。相較于一般的爬蟲(chóng)項(xiàng)目,招聘網(wǎng)絡(luò)爬蟲(chóng)有明顯的精確性特征,可以精準(zhǔn)地搜索與主題相關(guān)的網(wǎng)頁(yè)信息,增強(qiáng)了網(wǎng)絡(luò)搜索的實(shí)效性。但本文的不足之處是只列舉了一些簡(jiǎn)單的爬蟲(chóng)技術(shù)和反爬蟲(chóng)方法,光是這些技術(shù)還不足以提升到爬取更多復(fù)雜的數(shù)據(jù)。在今后的研究工作中,會(huì)繼續(xù)改進(jìn)本項(xiàng)目的設(shè)計(jì),完善有關(guān)功能,提升爬取數(shù)據(jù)的效率,更好地為學(xué)生就業(yè)工作提供更多的幫助。

參考文獻(xiàn)[1]李代祎,謝麗艷,錢慎一,吳懷廣.基于Scrapy的分布式爬蟲(chóng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].湖北民族學(xué)院學(xué)報(bào)(自然科學(xué)版).2017(03)[2]熊晟.知識(shí)庫(kù)質(zhì)量控制平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2016.[3]張鳳龍.網(wǎng)絡(luò)爬蟲(chóng)的設(shè)計(jì)與實(shí)現(xiàn)[D].天津:天津大學(xué),2011.?[4]張牛.同步競(jìng)拍技術(shù)在代拍網(wǎng)站中的研究與應(yīng)用[D].上海:東華大學(xué),2014.[5]Releasenotes—Scrapydocumentation..[2018-08-13][6]WangJing,GuoYuchun,Scrapy-BasedCrawlingandUser-BehaviorCharacteristicsAnalysisonTaobao,2012[7]HansongWang,PreliminarystudyondesignanddevelopmentofajournalfocusedcrawlersystemusingEBDmethodology:PartI—Designtaskandenvironmentanalysis,2014[8]劉石磊.對(duì)反爬蟲(chóng)網(wǎng)站的應(yīng)對(duì)策略[J].電腦知識(shí)與技術(shù),2017,13(15):19-21+23.[9]李光敏,李平,汪聰.基于Scrapy的分布式數(shù)據(jù)采集與分析—以知乎話題為例[J].湖北師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,39(03):1-7.[10]翁紹菲,廖翔宇,祝光儀,范雅靜,甘宇健.基于Scrapy的分布式爬蟲(chóng)采集軟件的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2019,15(20):73-75.[11]韓貝,馬明棟,王得玉.基于Scrapy框架的爬蟲(chóng)和反爬蟲(chóng)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019(2):139-142.

致謝四年的學(xué)習(xí)生活即將結(jié)束,四年的日日夜夜,老師的教誨和指導(dǎo),師兄師姐和同學(xué)的幫助,家長(zhǎng)的支持和鼓勵(lì)讓我邁上一步。在本文的設(shè)計(jì)過(guò)程中,謝謝學(xué)校給了我學(xué)習(xí)的機(jī)會(huì),感謝老師從選題指導(dǎo)、論文框架到細(xì)節(jié)修改,給予了詳細(xì)的指導(dǎo),提出了許多有價(jià)值的意見(jiàn)和建議,老師以其嚴(yán)謹(jǐn)求實(shí)的學(xué)習(xí)態(tài)度,高度的敬業(yè)精神、敬業(yè)、刻苦的工作作風(fēng)和勇于創(chuàng)新進(jìn)取的精神對(duì)我有著重要的影響,她淵博的學(xué)識(shí)、開(kāi)闊的視野和敏銳的思維使我深受鼓舞。

PowerPoint課件制作實(shí)用技巧PowerPoint是微軟公司生產(chǎn)的制作幻燈片和簡(jiǎn)報(bào)的軟件(以下簡(jiǎn)稱PPT)。在我們?cè)S多人看來(lái),它只不過(guò)是一個(gè)簡(jiǎn)單地對(duì)文字、圖形、圖片進(jìn)行演示的軟件,教學(xué)中的課件制作軟件當(dāng)屬Authorware、Flash。Authorware和Flash制作的動(dòng)畫(huà)效果的確很好,而且它們的功能也很強(qiáng)大。不過(guò)這些軟件在制作課件的過(guò)程中往往非常耗時(shí),用這些專業(yè)軟件來(lái)制作課件用于平時(shí)的教學(xué)往往效率很低。PPT就是一個(gè)非常簡(jiǎn)單、實(shí)用的制作課件的軟件,只要你用好它,同樣能做非常棒的課件來(lái)。一、掌握基本,知道“插入”。(一)知道從“插入”菜單進(jìn)入,會(huì)給PPT課件添加文字、圖片、影片和聲音等,也就會(huì)做一般的課件了。(二)圖片插入與處理1.插入圖片具體方法:a)插入剪貼畫(huà)或文件中的圖片;b)添加圖片做背景;c)給自選圖形做填充。2.處理圖片具體方法:我們用PPT制作課件時(shí),經(jīng)常從網(wǎng)上下載圖片來(lái)用,而網(wǎng)絡(luò)中的圖片往往含有超鏈接和網(wǎng)站名稱痕跡,我們需要?jiǎng)h除其中超鏈接,并對(duì)圖片進(jìn)行裁剪處理。在Powerpoint中,我們一般可以利用“圖片”工具欄上的“裁剪”工具進(jìn)行裁剪處理,但是,這里的工具只能對(duì)圖片進(jìn)行矩形裁剪,若想裁剪成圓形、多邊形等其他形狀,通常方法就無(wú)能為力了。其實(shí)這個(gè)問(wèn)題在PPT中是可以解決的。我們用給自選圖形做填充圖片的方法就可以實(shí)現(xiàn)我們需要的效果。具體步驟:a)首先利用“繪圖”工具欄畫(huà)一個(gè)想要裁剪的圖形,如橢圓。b)選中橢圓后單擊“繪圖”工具欄上“填充顏色”按鈕右側(cè)黑三角,從列表菜單中單擊“填充效果”命令。c)打開(kāi)選擇“圖片”選項(xiàng)卡,單擊〔選擇圖片〕按鈕,從“選擇圖片”對(duì)話框中找到合適的圖片,單擊〔插入〕按鈕后返回到“填充效果”對(duì)話框最后單擊〔確定〕按鈕后退出。此圖片當(dāng)作橢圓圖形的背景出現(xiàn),改變了原來(lái)的矩形形狀,獲得了滿意的裁剪圖片效果。圖片在插入PPT之前,我們可以用ACDSEE軟件進(jìn)行加工,如改變大小,裁剪等操作。二、學(xué)會(huì)下載,查找方法。在制作課件過(guò)程中,我們時(shí)常需要從網(wǎng)絡(luò)上下載各種資源用以豐富課件內(nèi)容,提升課堂效果。但有許多網(wǎng)站的flash動(dòng)畫(huà)都不提供下載;還有網(wǎng)站為我們提供了許多視頻素材,這些視頻素材都是FLV流媒體格式。FLV流媒體格式是一種新的視頻格式,全稱為FlashVideo。由于它形成的文件極小、加載速度極快,使得網(wǎng)絡(luò)觀看視頻文件成為可能,它的出現(xiàn)也有效地解決了視頻文件導(dǎo)入Flash后,使導(dǎo)出的SWF文件體積龐大,不能在網(wǎng)絡(luò)上很好的使用等缺點(diǎn)。目前各在線視頻網(wǎng)站均采用此視頻格式。如新浪播客、56、優(yōu)酷、土豆、酷6等,無(wú)一例外。FLV已經(jīng)成為當(dāng)前視頻文件的主流格式。這些網(wǎng)站一般都不提供下載。我們想要這些素材,怎樣辦?1.尋找下載方法:a)在百度網(wǎng)站搜索欄中輸入下載的內(nèi)容,搜索下載方法。b)弄清格式,再搜索方法。2.具體方法推薦①flasah動(dòng)畫(huà)的下載方法一:IE緩存中尋找在網(wǎng)上看過(guò)一個(gè)flash后,一般情況下都會(huì)保存在IE緩存里。右擊桌面上的IE圖標(biāo),選“屬性”命令,單擊中間的“設(shè)置”按鈕,彈出“Internet臨時(shí)文件和歷史記錄設(shè)置”面板,單擊“查看文件”,可以打開(kāi)臨時(shí)文件夾,按時(shí)間排序,找到剛才打開(kāi)的flash動(dòng)畫(huà)文件。優(yōu)點(diǎn):不需要安裝其它軟件。缺點(diǎn):操作相對(duì)煩瑣。方法二:借助Flashsaver等軟件下載,這些軟件都可以快速、方便的下載你所需要的flash文件。優(yōu)點(diǎn):簡(jiǎn)單、方便、快速。缺點(diǎn):需要安裝使用。②FLV視頻的獲取方法一:IE緩存中尋找,方法同flasah。方法二:flv視頻解析下載/三、學(xué)用控件,轉(zhuǎn)化應(yīng)用1.flash動(dòng)畫(huà)的插入方法一:安裝flash插件,再插入flash。步驟:a)安裝“ppt插flash軟件”插件;b)單擊“插入”→“flashmovie”→打開(kāi)要播放的flash文件→確定。方法二:利用控件插入flash動(dòng)畫(huà)。步驟:a)插入“ShockwaveFlashObject”控件對(duì)象:右擊“工具欄”→選“控件工具箱”(或點(diǎn)“視圖→工具欄→控件工具箱”);點(diǎn)“其他控件”(控件工具箱中最后一個(gè)形似錘子斧頭的按鈕),拖動(dòng)滾動(dòng)條或在英文輸入法狀態(tài)下按鍵盤(pán)上“s”鍵,快速定位到以s開(kāi)頭的控件,選擇“ShockwaveFlashObject”控件。將鼠標(biāo)移到幻燈片工作區(qū),鼠標(biāo)指針變成“十”字型,拖動(dòng)鼠標(biāo)繪制出一個(gè)形似信封的矩形。b)打開(kāi)控件對(duì)象“屬性”對(duì)話框:右擊矩形控件對(duì)象,在彈出的快捷菜單中選“屬性”命令。c)正確設(shè)置控件對(duì)象屬性:主要是在“Movie”空白文本域中正確輸入演示文稿要播放的.swf動(dòng)畫(huà)的完整名稱。d)將控件對(duì)象適當(dāng)縮放:為了獲得比較好的播放效果,拖動(dòng)控件對(duì)象的縮放點(diǎn)使它幾乎覆蓋整個(gè)幻燈片工作區(qū),但要在幻燈片工作區(qū)底部保留少許空白區(qū)域。這樣既可以享受.swf動(dòng)畫(huà)大屏幕播放的好處,又能夠保證幻燈片能夠順利地切換。e)一般情況下,幻燈片應(yīng)顯示出動(dòng)畫(huà)的第一幀圖形。如果控件對(duì)象仍是空白的,可保存演示文稿,關(guān)閉后再打開(kāi)它,按F5放映幻燈片,應(yīng)該能夠正確播放動(dòng)畫(huà)。2.FLV視頻的插入FLV視頻與FLASH不一樣的。全稱是flashvideo,所用的播放器也不一樣。①利用控件插入PPT的方法也是有區(qū)別的。不同點(diǎn):先要下載pptflv.swf文件,此文件是類似于網(wǎng)頁(yè)中FLV視頻播放器的一個(gè)Flash文件(可用百度搜索下載下來(lái)后記著要改文件名,保留擴(kuò)展名);例如改成:pptflv1.swf“Movie”參數(shù)值填入方法不一樣,參數(shù)值示例:pptflv.swf?file=視頻.FLV“pptflv.swf”即為步驟一下載下來(lái)的Flash文件的完整文件,“視頻.FLV”即為需要播放的FLV視頻的文件名,大家只要將pptflv.swf換成自己下載后起的文件名,將“視頻.FLV”換成自己的FLV視頻文件名,則此FLV文件就可以在PowerPoint中播放了。如播放2.flv視頻參數(shù)填法:示例:pptflv1.swf?file=2.FLV②方法二:將flv轉(zhuǎn)換成swf再插入轉(zhuǎn)換軟件:UltraFlashVideoFLVConverter3.2.0軟件說(shuō)明:該軟件又叫全格式FLV轉(zhuǎn)換器,支持將幾乎所有主流視頻格式轉(zhuǎn)換為FLV或者SWF且對(duì)用戶較為關(guān)心的RealMedia(RM/RMVB...)和QuickTime(MOV/QT...)支持良好。三大特色功能:既可輸出FLV格式,也可輸出SWF格式,甚至同時(shí)輸出FLV+SWF格式。此軟件也支持創(chuàng)建調(diào)用播放的網(wǎng)頁(yè)支持導(dǎo)入所有的主流字幕格式。srt,*.sub,*.idx,*.ssa,*.ass,*.psb,*.smi)有字幕合成功能,你現(xiàn)在無(wú)需再使用那些繁瑣的專業(yè)軟件來(lái)合成字幕到視頻中去,字幕合成與格式轉(zhuǎn)換一氣呵成!支持視頻分割,右鍵點(diǎn)擊列表中的源文件,選擇[編輯視頻],自己設(shè)置下起點(diǎn)終點(diǎn)即可對(duì)視頻進(jìn)行去粗取精處理?、鄯椒ㄈ簩lv轉(zhuǎn)換成其他格式視頻文件再插入工具:FLV轉(zhuǎn)AVI(FreeFLVtoAVIConverter1.5)作用:一個(gè)免費(fèi)的將FLV轉(zhuǎn)換成AVI的軟件,簡(jiǎn)單好用,自帶解碼器。四、學(xué)做交互,理解運(yùn)用。1.利用母版進(jìn)行交互母版≠模版母版和模版可以使課件統(tǒng)一整體風(fēng)格,展現(xiàn)自己的個(gè)性和特點(diǎn);模版是對(duì)同一類課件所做的整體風(fēng)格統(tǒng)一設(shè)置,母版則是對(duì)某一部課件內(nèi)部所做的個(gè)性化統(tǒng)一設(shè)置。母版設(shè)置得好,就可以存為模版,供別人在制作同類題材時(shí)使用。修改幻燈片母板的方法和技巧。如果我們希望為每一張幻燈片添加上一項(xiàng)固定的內(nèi)容,并做超鏈接,可以通過(guò)修改“母板”來(lái)實(shí)現(xiàn)。a)執(zhí)行“視圖→母板→幻燈片母板”命令,進(jìn)入“幻燈片母板”編輯狀態(tài)。b)插入固定內(nèi)容。例如:將圖片插入到幻燈片中,調(diào)整好大小、定位到合適的位置上。c)給這張圖片插入超鏈接,就可以進(jìn)行交互了。d)單擊“關(guān)閉母板視圖”按鈕退出“幻燈片母板”編輯狀態(tài)。以后添加幻燈片時(shí),該幻燈片上自動(dòng)添加上該圖片。如果說(shuō)一個(gè)PPT有它的靈魂的話,那就是PPT的母板,它的作用猶如摩天大廈的根基一般。2.在PPT演示文稿中插入PowerPoint演示文稿對(duì)象實(shí)現(xiàn)交互具體效果:①導(dǎo)航目錄內(nèi)容展示效果②單擊小圖片就可看到該圖片的放大圖自動(dòng)縮效果《畫(huà)家鄉(xiāng)》一課五個(gè)畫(huà)面交互的具體操作方法:a)單擊“插入→對(duì)象”,在出現(xiàn)的選擇頁(yè)中選擇“MicrosoftPowerPoint演示文稿”,單擊確定。此時(shí)就會(huì)在當(dāng)前幻燈片中插入一個(gè)“PowerPoint演示文稿”的編輯區(qū)域。b)在此編輯區(qū)域中我們就可以對(duì)插入的演示文稿對(duì)象進(jìn)行編輯了,編輯方法與PowerPoint演示文稿的編輯方法一樣。c)在插入的演示文稿對(duì)象中創(chuàng)建所需的幻燈片。可將圖片設(shè)置為幻燈片相同大小,退出編輯后,就可發(fā)現(xiàn)圖片以縮小方式顯示了(其實(shí)是整個(gè)插入的演示文稿對(duì)象被縮小顯示了)。d)最后,我們只需對(duì)剩余的圖片進(jìn)行插入。為了提高效率,可將這個(gè)插入的演示文稿對(duì)象進(jìn)行復(fù)制,并按照上面的方法對(duì)圖片進(jìn)行替換即可。e)完畢后,單擊“觀看放映”命令進(jìn)行演示,單擊小圖片馬上會(huì)放大,再單擊放大的圖片馬上又返回到了瀏覽小圖片的幻燈片中了。原理:這里的小圖片實(shí)際上是插入的演示文稿對(duì)象,它們的“動(dòng)作設(shè)置”屬性中的“單擊鼠標(biāo)”中的“對(duì)象動(dòng)作”被設(shè)為了“演示”(這是默認(rèn)值)。因此我們?cè)谘菔緯r(shí),單擊小圖片,就是等于對(duì)插入的演示文稿對(duì)象進(jìn)行“演示觀看”。而演示文稿對(duì)象在播放時(shí)就會(huì)自動(dòng)全屏幕顯示。所以我們看到的圖片就好像被放大了一樣,而我們單擊放大圖片時(shí),插入的演示文稿對(duì)象實(shí)際上已被播放完了(因?yàn)橹挥幸粡垼?,它就?huì)自動(dòng)退出,所以就回到了主幻燈片中了。3.用觸發(fā)器控制自定義動(dòng)畫(huà)進(jìn)行交互以前我們?cè)谑褂肞owerPoint制作課件時(shí),常常發(fā)現(xiàn)制作人機(jī)交互性的課件非常麻煩。其實(shí)在PowerPoint2003里,用觸發(fā)器控制自定義動(dòng)畫(huà)可以輕松地制作出交互性很強(qiáng)的課件。觸發(fā)器功能可以將畫(huà)面中的任一對(duì)象設(shè)置為觸發(fā)器,單擊它,該觸發(fā)器下的所有對(duì)象就能根據(jù)預(yù)先設(shè)定的動(dòng)畫(huà)效果開(kāi)始運(yùn)動(dòng),并且設(shè)定好的觸發(fā)器可以多次重復(fù)使用。類似于Authorware、Flash等軟件中的熱對(duì)象、按鈕、熱文字等,單擊后會(huì)引發(fā)一個(gè)或者的一系列動(dòng)作。例1:?jiǎn)螕簟袄馀_(tái)”后,“小球”開(kāi)始按一定路徑運(yùn)動(dòng)。例2:分別單擊“變色一”和“變色二”,讓“笑臉”顏色。例3:?jiǎn)螕粝旅嬉欢卧挼年P(guān)鍵詞,讓詞語(yǔ)變紅色讀下面一段話,說(shuō)說(shuō)從哪些詞語(yǔ)中可以看出侵略者采用了各種野蠻手段掠奪、毀滅圓明園的?他們把園內(nèi)凡是能拿走的東西,統(tǒng)統(tǒng)掠走,拿不動(dòng)的,就用大車或牲口搬運(yùn)。實(shí)在運(yùn)不走的,就任意破壞、毀掉。步驟:a)將原來(lái)段落中的重點(diǎn)詞消去;(將詞語(yǔ)顏色變成和背景色一樣)b)將重點(diǎn)詞作為單獨(dú)文本覆蓋到原來(lái)位置;c)設(shè)置重點(diǎn)詞自定義動(dòng)畫(huà)為“添加效果→強(qiáng)調(diào)→更改字體顏色→紅色”d)右擊重點(diǎn)詞自定義動(dòng)畫(huà),選擇“效果選項(xiàng)”,選擇“計(jì)時(shí)”,選擇“觸發(fā)器”,選“單擊下列對(duì)象時(shí)啟動(dòng)效果”,再選重點(diǎn)詞,按確定。五、學(xué)會(huì)截取,合理選用。(一)視頻的截取加工1.工具:萬(wàn)能轉(zhuǎn)換器(英文名TotalVideoConverter)作用:可以幫助你快速的分割,修整大的AVI、MPEG、ASF或者WMV文件為一個(gè)個(gè)小的視頻文件,內(nèi)置視頻播放器,你可以很方便的按照所選擇的播放時(shí)間進(jìn)行切割操作,不需要另外具備高深的技術(shù)知識(shí),簡(jiǎn)單容易使用!2.繪聲繪影會(huì)聲會(huì)影是一套操作最簡(jiǎn)單,功能最強(qiáng)悍的DV、HDV影片剪輯軟件。不僅完全符合家庭或個(gè)人所需的影片剪輯功能,甚至可以挑戰(zhàn)專業(yè)級(jí)的影片剪輯軟件。(二)flash的片段截取有時(shí)候,在網(wǎng)絡(luò)上下載了一個(gè)課件,對(duì)自己的課堂教學(xué)有幫助,但是又不想全部應(yīng)用這個(gè)課件,只想取出其中一部分,應(yīng)該則么辦呢?先用碩思閃客精靈將.swf文件和.exe文件轉(zhuǎn)換成fla文件,再用flash8打開(kāi)進(jìn)行編輯,截取自己所需的片段,然后插入到ppt里面為我所用。1.碩思閃客精靈:它是一款用于瀏覽和解析Flash動(dòng)畫(huà)(.swf文件和.exe文件)的工具。最新版本有著強(qiáng)大的功能,可以將swf文件導(dǎo)出成FLA文件。它還能夠?qū)lash動(dòng)畫(huà)中的圖片、矢量圖、聲音、視頻(*.flv)、文字、按鈕、影片片段、幀等基本元素完全分解,最重要的是可以對(duì)動(dòng)作的腳本(Actionscript)進(jìn)行解析,清楚的顯示其動(dòng)作的代碼,讓對(duì)Flash動(dòng)畫(huà)的構(gòu)造一目了然。支持將SWF文件導(dǎo)出成FLA文件,幫助丟失FLA文件的影片作者重新獲得FLA文件,從而可以再編輯。完全兼容Flash8文件和動(dòng)作腳本(ActionScript)2.0。碩思閃客精靈支持將包含組件的SWF文件轉(zhuǎn)換成FLA格式,用戶可以在Flash中編輯這些組件。支持解析Flash影片中的視屏(video)文件,并將Flash影片中的視頻文件導(dǎo)出為*.flv格式。2.碩思閃客精靈具體使用方法:①解析Flash課件,提取課件素材在Flash課件作品中有大量的圖片、聲音和視頻等資源。由于制作者擁有的資源不同,在制作課件時(shí),很難及時(shí)、方便地尋找到適合的素材。如果可以從同類作品中將所需要的資源提取出來(lái)為己所用的話,不僅大大節(jié)約了搜集素材資源的時(shí)間,而且會(huì)極大地提高課件利用率。但是,F(xiàn)lash課件發(fā)布時(shí)一般都進(jìn)行加密處理,使教師無(wú)法用普通的方式導(dǎo)入到Flash中進(jìn)行編輯。而碩思閃客精靈可以解析出Flash作品中的元件及腳本,并且可以保存成swf格式,這樣在創(chuàng)作時(shí)就可以直接導(dǎo)入Flash中使用。啟動(dòng)閃客精靈,單擊工具上的“快速打開(kāi)”按鈕打開(kāi)一個(gè)Flash動(dòng)畫(huà)(可以是swf格式或exe格式),閃客精靈會(huì)自動(dòng)分解當(dāng)前動(dòng)畫(huà)(圖2),包括用到的腳本語(yǔ)言(Actions語(yǔ)句),并在資源欄中分類羅列著動(dòng)畫(huà)中的各種元件(圖片、按鈕、影片和聲音等);單擊某個(gè)元件,可以在中間的窗口中預(yù)覽;勾選需要的元件,然后單擊“導(dǎo)出”按鈕,就可以把選中的元件分類保存到原文件所在的文件夾中。②反編譯Flash課件,獲取課件源代碼碩思閃客精靈的最大亮點(diǎn)就是能夠?qū)lash動(dòng)畫(huà)(swf格式)還原成其源文件(Fla格式),相信這個(gè)功能是很多朋友期待已久的。還原的方法十分的簡(jiǎn)單,只需要打開(kāi)Flash動(dòng)畫(huà),再單擊工具欄上的“導(dǎo)出Fla”按鈕,選擇保存位置,稍等后就完成了還原工作,此時(shí)還會(huì)提示“是否愿意用Flash打開(kāi)它”,單擊“Yes”即可啟動(dòng)系統(tǒng)中安裝的Flash打開(kāi)還原后的源文件,此時(shí)你就可以隨心所欲地對(duì)它進(jìn)行修改啦。3.用flash8進(jìn)行編輯基本方法:選取需要幀,復(fù)制,粘貼到新的flash中,調(diào)試修改。上面介紹了關(guān)于破解Flash課件的一些方法和手段,有一個(gè)特定的使用范圍,即為了課堂教學(xué)服務(wù),只有資源共享才能提高教學(xué)效率,促進(jìn)教學(xué)效果的提高。不能做為商業(yè)目的,也不能將別人的課件的署名修改一下,便成為自己的作品,用于參加比賽,這是不道德的行為。在PPT演示中禁用右鍵快捷菜單和滑鼠滾動(dòng)一大群與會(huì)人員正襟危坐,你豪情滿懷地進(jìn)行著某個(gè)新產(chǎn)品的演示或介紹,卻不小心由于鼠標(biāo)左鍵的誤操作導(dǎo)致幻燈片跳到了本不應(yīng)該出現(xiàn)的位置,或者本應(yīng)按下鼠標(biāo)左鍵切換到下一張,卻由于按下了右鍵而出現(xiàn)一個(gè)快捷菜單。不用擔(dān)心,只要進(jìn)行小小的設(shè)置,就可以將這些煩人的問(wèn)題統(tǒng)統(tǒng)搞定。從任務(wù)窗格中打開(kāi)“幻燈片切換”,將換片方式小節(jié)中的“單擊鼠標(biāo)時(shí)”和“每隔”兩個(gè)復(fù)選項(xiàng)全部去除,然后將這個(gè)設(shè)置應(yīng)用于所有幻燈片,以后切換到下一張或上一張,只有通過(guò)鍵盤(pán)上的方向鍵才能進(jìn)行操作。至于另外一個(gè)問(wèn)題,解決的辦法也很簡(jiǎn)單,從“工具”菜單下打開(kāi)“選項(xiàng)→視圖”窗口,取消“幻燈片放映”小節(jié)上的“右鍵單擊快捷菜單”復(fù)選框即可。■在PPT演示文稿內(nèi)復(fù)制幻燈片要復(fù)制演示文稿中的幻燈片,請(qǐng)先在普通視圖的“大綱”或“幻燈片”選項(xiàng)中,選擇要復(fù)制的幻燈片。如果希望按順序選取多張幻燈片,請(qǐng)?jiān)趩螕魰r(shí)按Shift鍵;若不按順序選取幻燈片,請(qǐng)?jiān)趩螕魰r(shí)按Ctrl鍵。然后在“插入”菜單上,單擊“幻燈片副本”,或者直接按下“Ctrl+shift+D”組合鍵,則選中的幻燈片將直接以插入方式復(fù)制到選定的幻燈片之后。■Powerpoint自動(dòng)黑屏在用Powerpoint展示課件的時(shí)候,有時(shí)需要學(xué)生自己看書(shū)討論,這時(shí)為了避免屏幕上的圖片影響學(xué)生的學(xué)習(xí)注意力可以按一下“B”鍵,此時(shí)屏幕黑屏。學(xué)生自學(xué)完成后再接一下“B”鍵即可恢復(fù)正常。按“W”鍵也會(huì)產(chǎn)生類似的效果?!鰧⒒脽羝l(fā)送到word文檔1、在Powerpoint中打開(kāi)演示文稿,然后在“文件”菜單上,指向“發(fā)送”,再單擊“MicrosoftWord”。2、在“將幻燈片添加到Microsoftword文檔”之下,如果要將幻燈片嵌入word文檔,請(qǐng)單擊“粘貼”;如果要將幻燈片鏈接到word文檔,請(qǐng)單擊“粘貼鏈接”。如果鏈接文件,那么在Powerpoint中編輯這些文件時(shí),它們也會(huì)在word文檔中更新。3、單擊“確定”按鈕。此時(shí),系統(tǒng)將新建一個(gè)word文檔,并將演示文稿復(fù)制到該文檔中。如果word未啟動(dòng),則系統(tǒng)會(huì)自動(dòng)啟動(dòng)word。■讓幻燈片自動(dòng)播放要讓powerpoint的幻燈片自動(dòng)播放,只需要在播放時(shí)右鍵點(diǎn)擊這個(gè)文稿,然后在彈出的菜單中執(zhí)行“顯示”命令即可,或者在打開(kāi)文稿前將該文件的擴(kuò)展名從PPT改為PPS后再雙擊它即可。這樣一來(lái)就避免了每次都要先打開(kāi)這個(gè)文件才能進(jìn)行播放所帶來(lái)的不便和繁瑣?!鲈黾覲PT的“后悔藥”在使用powerpoint編輯演示文稿時(shí),如果操作錯(cuò)誤,那么只要單擊工具欄中的“撤消”按鈕,即可恢復(fù)到操作前的狀態(tài)。然而,默認(rèn)情況下Powerpoint最多只能夠恢復(fù)最近的20次操作。其實(shí),powerpoint允許用戶最多可以“反悔”150次,但需要用戶事先進(jìn)行如下設(shè)置:在“工具-選項(xiàng)”,擊“編輯”選項(xiàng)卡,將“最多可取消操作數(shù)”改為“150”,確定。■PPT中的自動(dòng)縮略圖效果你相信用一張幻燈片就可以實(shí)現(xiàn)多張圖片的演示嗎?而且單擊后能實(shí)現(xiàn)自動(dòng)放大的效果,再次單擊后還原。其方法是:新建一個(gè)演示文稿,單擊“插入”菜單中的“對(duì)象”命令,選擇“Microsoftpowerpoint演示文稿”,在插入的演示文稿對(duì)象中插入一幅圖片,將圖片的大小改為演示文稿的大小,退出該對(duì)象的編輯狀態(tài),將它縮小到合適的大小,按F5鍵演示一下看看,是不是符合您的要求了?接下來(lái),只須復(fù)制這個(gè)插入的演示文稿對(duì)象,更改其中的圖片,并排列它們之間的位置就可以了。■快速靈活改變圖片顏色利用powerpoint制作演示文稿課件,插入漂亮的剪貼畫(huà)會(huì)為課件增色不少??刹⒉皇撬械募糍N畫(huà)都符合我們的要求,剪貼畫(huà)的顏色搭配時(shí)常不合理。這時(shí)我們右鍵點(diǎn)擊該剪貼畫(huà)選擇“顯示‘圖片’工具欄”選項(xiàng)(如果圖片工具欄已經(jīng)自動(dòng)顯示出來(lái)則無(wú)需此操作),然后點(diǎn)擊“圖片”工具欄上的“圖片重新著色”按鈕,在隨后出現(xiàn)的對(duì)話框中便可任意改變圖片中的顏色?!鰹镻PT添加公司LOGO用powerpoint為公司做演示文稿時(shí),最好第一頁(yè)都加上公司的Logo,這樣可以間接地為公司做免費(fèi)廣告。執(zhí)行“視圖-母版-幻燈片母版”命令,在“幻燈片母版視圖”中,將Logo放在合適的位置上,關(guān)閉母版視圖返回到普通視圖后,就可以看到在每一頁(yè)加上了Logo,而且在普通視圖上也無(wú)法改動(dòng)它了。■“保存”特殊字體為了獲得好的效果,人們通常會(huì)在幻燈片中使用一些非常漂亮的字體,可是將幻燈片拷貝到演示現(xiàn)場(chǎng)進(jìn)行播放時(shí),這些字體變成了普通字體,甚至還因字體而導(dǎo)致格式變得不整齊,嚴(yán)重影響演示效果。在powerpoint中,執(zhí)行“文件-另存為”,在對(duì)話框中點(diǎn)擊“工具”按鈕,在下拉菜單中選擇“保存選項(xiàng)”,在彈出其對(duì)話框中選中“嵌入TrueType字體”項(xiàng),然后根據(jù)需要選擇“只嵌入所用字符”或“嵌入所有字符”項(xiàng),最后點(diǎn)擊“確定”按鈕保存該文件即可。■利用組合鍵生成內(nèi)容簡(jiǎn)介我們?cè)谟胮owerpoint2003制作演示文稿時(shí),通常都會(huì)將后面幾個(gè)幻燈片的標(biāo)題集合起來(lái),把它們作為內(nèi)容簡(jiǎn)介列在首張或第二張幻燈片中,讓文稿看起來(lái)更加直觀。如果是用復(fù)制粘貼來(lái)完成這一操作,實(shí)在有點(diǎn)麻煩,其實(shí)最快速的方法就是先選擇多張幻燈片,接著按下alt+shift+s即可。■演示文稿中的圖片隨時(shí)更新在制作演示文稿中,如果想要在其中插入圖片,執(zhí)行“插入-圖片-來(lái)自文件”,然后打開(kāi)“插入圖片”窗口插入相應(yīng)圖片。其實(shí)當(dāng)我們選擇好想要插入的圖片后,可以點(diǎn)擊窗口右側(cè)的“插入”按鈕,在出現(xiàn)的下拉列表中選“鏈接文件”項(xiàng),點(diǎn)擊確定。這樣一來(lái),往后只要在系統(tǒng)中對(duì)插入圖片進(jìn)行了修改,那么在演示文稿中的圖片也會(huì)自動(dòng)更新,免除了重復(fù)修改的麻煩。■快速調(diào)用其他PPT在進(jìn)行演示文檔的制作時(shí),需要用到以前制作的文檔中的幻燈片或要調(diào)用其他可以利用的幻燈片,如果能夠快速?gòu)?fù)制到當(dāng)前的幻燈片中,將會(huì)給工作帶來(lái)極大的便利。在幻燈片選項(xiàng)卡時(shí),使光標(biāo)置于需要復(fù)制幻燈片的位置,選擇“菜單”中的“幻燈片(從文件)”命令,在打開(kāi)的“幻燈片搜索器”對(duì)話框中進(jìn)行設(shè)置。通過(guò)“瀏覽”選擇需要復(fù)制的幻燈片文件,使它出現(xiàn)在“選定幻燈片”列表框中。選中需要插入的幻燈片,單擊“插入”,如果需要插入列表中所有的幻燈片,直接點(diǎn)擊“全部插入”即可。這樣,其他文檔中的幻燈片就為我們所用了?!隹焖俣ㄎ换脽羝诓シ舙owerpoint演示文稿時(shí),如果要快進(jìn)到或退回到第5張幻燈片,可以這樣實(shí)現(xiàn):按下數(shù)字5鍵,再按下回車鍵。若要從任意位置返回到第1張幻燈片,還有另外一個(gè)方法:同時(shí)按下鼠標(biāo)左右鍵并停留2秒鐘以上?!隼眉糍N畫(huà)尋找免費(fèi)圖片當(dāng)我們利用powerpoint2003制作演示文稿時(shí),經(jīng)常需要尋找圖片來(lái)作為鋪助素材,其實(shí)這個(gè)時(shí)候用不著登錄網(wǎng)站去搜索,直接在“剪貼畫(huà)”中就能搞定。方法如下:插入-圖片-剪貼畫(huà),找到“搜索文字”一欄并鍵入所尋找圖片的關(guān)鍵詞,然后在“搜索范圍”下拉列表中選擇“Web收藏集”,單擊“搜索”即可。這樣一來(lái),所搜到的都是微軟提供的免費(fèi)圖片,不涉及任何版權(quán)事宜,大家可以放心使用?!鲋谱鳚L動(dòng)文本在powerpoint中有時(shí)因顯示文本內(nèi)容較多就要制作滾動(dòng)文本。具體制作方法如下:視圖-工具欄-控件箱,打開(kāi)控件工具箱,點(diǎn)擊“文字框”選項(xiàng),插入“文字框”控件,然后在幻燈片編輯區(qū)按住鼠標(biāo)左鍵拖拉出一個(gè)文本框,并根據(jù)版面來(lái)調(diào)整它的位置和大小。接著在“文字框”上右擊鼠標(biāo),選擇快捷菜單中的“屬性”命令,彈出“文字框”屬性窗口,在屬性窗口中對(duì)文字框的一些屬性進(jìn)行相關(guān)的設(shè)置。設(shè)置好后右擊“文字框”,選擇“文字框?qū)ο蟆敝械摹熬庉嫛泵?,這時(shí)就可以進(jìn)行文字的輸入,文本編輯完之后,在文字框外任意處單擊鼠標(biāo),即可退出編輯狀態(tài)。一個(gè)可以讓框內(nèi)文字也隨滾動(dòng)條拖動(dòng)而移動(dòng)的文本框就做好了?!鐾黄?0次的撤消極限Powerpoint的“撤消”功能為文稿編輯提供了很大方便。但powerpoint默認(rèn)的操作次數(shù)卻只有20次。執(zhí)行“工具-選擇”,擊“編輯”標(biāo)簽卡,在“最多可取消操作數(shù)”中設(shè)置你需要的次數(shù)即可。不過(guò)要注意,powerpoint撤消操作次數(shù)限制最多為150次?!隼卯?huà)筆來(lái)做標(biāo)記利用powerpoint2003放映幻燈片時(shí),為了讓效果更直觀,有時(shí)我們需要現(xiàn)場(chǎng)在幻燈片上做些標(biāo)記,這時(shí)該怎么辦?在打開(kāi)的演示文稿中單擊鼠標(biāo)右鍵,然后依次選擇“指針選項(xiàng)-繪圖”即可,這樣就可以調(diào)出畫(huà)筆在幻燈片上寫(xiě)寫(xiě)畫(huà)畫(huà)了,用完后,按ESC鍵便可退出?!隹焖僬{(diào)節(jié)文字大小在powerpoint中輸入文字大小不合乎要求或者看起來(lái)效果不好,一般情況是通過(guò)選擇字體字號(hào)加以解決,其實(shí)我們有一個(gè)更加簡(jiǎn)潔的方法。選中文字后按ctrl+]是放大文字,ctrl+[是縮小文字?!鲇?jì)算字?jǐn)?shù)和段落執(zhí)行“文件-屬性”,在其對(duì)話框中選“統(tǒng)計(jì)”選項(xiàng)卡,該文件的各種數(shù)據(jù),包括頁(yè)數(shù)、字?jǐn)?shù)、段落等信息都顯示在該選項(xiàng)卡的統(tǒng)計(jì)信息框里。■輕松隱藏部分幻燈片對(duì)于制作好的powerpoint幻燈片,如果你希望其中的部分幻燈片在放映時(shí)不顯示出來(lái),我們可以將它隱藏。方法是:在普通視圖下,在左側(cè)的窗口中,按Ctrl,分別點(diǎn)擊要隱藏的幻燈片,點(diǎn)擊鼠標(biāo)右鍵彈出菜單選“隱藏幻燈片”。如果想取消隱藏,只要選中相應(yīng)的幻燈片,再進(jìn)行一次上面的操作即可。■將圖片文件用作項(xiàng)目符號(hào)一般情況下,我們使用的項(xiàng)目符號(hào)都是1、2、3,a、b、c之類的。其實(shí),我們還可以將圖片文件作為項(xiàng)目符號(hào),美化自己的幻燈片。首先選擇要添加圖片項(xiàng)目符號(hào)的文本或列表。點(diǎn)擊“格式-項(xiàng)目符號(hào)和編號(hào)”,在“項(xiàng)目符號(hào)項(xiàng)”選項(xiàng)卡中單擊“圖片”,調(diào)出剪輯管理器,你就可以選擇圖片項(xiàng)目符號(hào)。在“圖片項(xiàng)目符號(hào)”對(duì)話框中,單擊一張圖片,再單擊確定?!鰧?duì)象也用格式刷在powerpoint中,想制作出具有相同格式的文本框(比如相同的填充效果、線條色、文字字體、陰影設(shè)置等),可以在設(shè)置好其中一個(gè)以后,選中它,點(diǎn)擊“常用”工具欄中的“格式刷”工具,然后單擊其它的文本框。如果有多個(gè)文本框,只要雙擊“格式刷”工具,再連續(xù)“刷”多個(gè)對(duì)象。完成操作后,再次單擊“格式刷”就可以了。其實(shí),不光文本框,其它如自選圖形、圖片、藝術(shù)字或剪貼畫(huà)也可以使用格式刷來(lái)刷出完全相同的格式?!龌脽羝庞硶r(shí)讓鼠標(biāo)不出現(xiàn)Powerpoint幻燈片在放映時(shí),有時(shí)我們需要對(duì)鼠標(biāo)指針加以控制,讓它一直隱藏。方法是:放映幻燈片,單擊右鍵,在彈出的快捷菜單中選擇“指針選項(xiàng)-箭頭選項(xiàng)”,然后單擊“永遠(yuǎn)隱藏”,就可以讓鼠標(biāo)指針無(wú)影無(wú)蹤了。如果需要“喚回”指針,則點(diǎn)擊此項(xiàng)菜單中的“可見(jiàn)”命令。如果你點(diǎn)擊了“自動(dòng)”(默認(rèn)選項(xiàng)),則將在鼠標(biāo)停止移動(dòng)3秒后自動(dòng)隱藏鼠標(biāo)指針,直到再次移動(dòng)鼠標(biāo)時(shí)才會(huì)出現(xiàn)?!龈淖冩溄游淖值哪J(rèn)顏色Powerpoint2003中如果對(duì)文字做了超鏈接或動(dòng)作設(shè)置,那么powerpoint會(huì)給它一個(gè)默認(rèn)的文字顏色和單擊后的文字顏色。但這種顏色可能與咱們預(yù)設(shè)的背景色很不協(xié)調(diào),想更改嗎?那么可以點(diǎn)擊菜單命令“格式

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論