Python網(wǎng)絡(luò)爬蟲實踐體會_第1頁
Python網(wǎng)絡(luò)爬蟲實踐體會_第2頁
Python網(wǎng)絡(luò)爬蟲實踐體會_第3頁
Python網(wǎng)絡(luò)爬蟲實踐體會_第4頁
Python網(wǎng)絡(luò)爬蟲實踐體會_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、實踐目的了解基本的Python相關(guān)知識,清晰準(zhǔn)確的了解爬蟲技術(shù)的發(fā)展應(yīng)用起源的各個方面,對爬蟲的概念有一個基本的認(rèn)知了解,體會怎樣定向獲取有關(guān)網(wǎng)頁資源,通過該實踐活動可以有機會深入全面客觀的了解一些和Python相關(guān)的基礎(chǔ)原理和知識,學(xué)習(xí)了解一下如何抓包與反抓包,尤其是對于應(yīng)用了抓包機制和反抓包機制的應(yīng)用。如何對抓取到的信息進(jìn)行研究分析學(xué)習(xí),提取里面可用的東西作為今后工作生活中的工具以快速獲取有效信息。學(xué)習(xí)如何降低用于采集信息所浪費的大量人力物力,如何降低搜集信息的成本.。在之前,關(guān)于計算機相關(guān)我們的了解僅僅停留在常用辦公軟件上,最多就是部分同學(xué)有在之前的課程上接觸過c++等課程。關(guān)于Python網(wǎng)絡(luò)爬蟲相關(guān)技術(shù)算法應(yīng)用大家?guī)缀醵际且桓挪恢=?jīng)過這段時間的學(xué)習(xí),雖說大家也都還是一知半解只知皮毛而已,但在練習(xí)代碼的過程中添加了許多對于Python網(wǎng)絡(luò)爬蟲的了解,更是對于編程這個大的門類有了新的更深層次的認(rèn)識,對爬蟲有了初步的了解在了解爬蟲相關(guān)知識的基礎(chǔ)上,學(xué)習(xí)與此相關(guān)的算法知識,了解熟記一些基本常見的算法。學(xué)習(xí)Python技術(shù),熟練地使用Python這門語言,能夠順暢自如的使用軟件進(jìn)行算法操作。提取對我們有利的消息。讓同學(xué)們自己單獨親自動手制作出簡單的網(wǎng)絡(luò)爬蟲,在這個過程中同時充實和擴寬了同學(xué)們的見識以及對于其他領(lǐng)域的專業(yè)知識的擴展,進(jìn)一步獲得更多的知識和技能。在此之外,通過小組分工合作的方式,加大同學(xué)們對于團(tuán)隊互助共享資源的認(rèn)同感。。二、實踐內(nèi)容1項目的分析(1).解釋一下爬蟲(舉個實例)網(wǎng)絡(luò)控制爬蟲節(jié)點是由網(wǎng)絡(luò)控制系統(tǒng)節(jié)點、爬蟲服務(wù)節(jié)點、資源庫節(jié)點構(gòu)成的。網(wǎng)絡(luò)控制爬蟲中同樣可以同時有多個網(wǎng)絡(luò)控制爬蟲節(jié)點,每個網(wǎng)絡(luò)控制爬蟲節(jié)點下同樣可以同時有多個控制爬蟲管理節(jié)點,控制爬蟲節(jié)點之間同樣可以互相連接通信,同時,控制爬蟲節(jié)點和其下的各網(wǎng)絡(luò)爬蟲控制節(jié)點之間也同樣可以直接進(jìn)行互相連接通信,是相同的網(wǎng)絡(luò)控制爬蟲節(jié)點下的各網(wǎng)絡(luò)爬蟲控制節(jié)點間,也一樣可以相互進(jìn)行通信。控制一個線程節(jié)點,也就是可以使用叫作線程中央爬蟲的一個線程中央爬蟲線程控制器,主要工作功能就是負(fù)責(zé)線程根據(jù)每個線程urlr的節(jié)點地址自動進(jìn)行分配線程,并通過線程調(diào)用一個基于爬蟲線程控制器的節(jié)點群集器來自動進(jìn)行具體的線程蠕蟲爬行。爬蟲爬行節(jié)點通常會按照網(wǎng)頁相關(guān)的爬行算法,對下載網(wǎng)頁內(nèi)容進(jìn)行具體的昆蟲爬行,主要操作包括節(jié)點下載一個網(wǎng)頁以及對下載網(wǎng)頁的相關(guān)文本內(nèi)容進(jìn)行鏈接處理,爬行后,會將節(jié)點對應(yīng)的網(wǎng)頁爬行結(jié)果直接存儲起來到節(jié)點對應(yīng)的網(wǎng)頁資源庫中。網(wǎng)絡(luò)分析爬蟲按照需要實現(xiàn)的分析技術(shù)和網(wǎng)絡(luò)結(jié)構(gòu)不同可以被細(xì)分為一種通用式的網(wǎng)絡(luò)分析爬蟲、聚焦式的網(wǎng)絡(luò)分析爬蟲、增量式的的網(wǎng)絡(luò)分析爬蟲、深層次的網(wǎng)絡(luò)分析爬蟲等多種類型。在實際的各類網(wǎng)絡(luò)搜索爬蟲中,通常認(rèn)為是這幾類網(wǎng)絡(luò)爬蟲的一個組合體。網(wǎng)絡(luò)分析爬蟲引擎作為一個應(yīng)用程序,可以用來使一個新的網(wǎng)頁被自動化地提取分析出來。它為整個搜索結(jié)果引擎從萬維網(wǎng)上搜索下載到的網(wǎng)頁,是全部搜索結(jié)果引擎最最最至關(guān)重要的部分組成。聚焦網(wǎng)站爬蟲的鏈接工作處理流程較為復(fù)雜,需要根據(jù)一定的新型網(wǎng)頁鏈接分析處理算法進(jìn)行過濾與網(wǎng)站主題內(nèi)容無關(guān)的鏈接,保存可以使用的鏈接并且將其合并整合進(jìn)入一個能夠被用戶抓取的地址urls的隊列。再下來,它會按照一定的排序計劃從每個隊列中自動的選擇一個下一步程序要進(jìn)行抓取的一個網(wǎng)頁ururl,并不斷重復(fù)上述搜索過程,直到程序達(dá)到系統(tǒng)的某一特定條件時程序停止。另外,所有被這些爬蟲自動抓取的一個網(wǎng)頁將來都會被系統(tǒng)自動存貯,進(jìn)行一定的數(shù)據(jù)分析、過濾,并對其建立數(shù)據(jù)索引,以便之后的網(wǎng)頁查詢和數(shù)據(jù)檢索;對于一些聚焦型的爬蟲來說,這一編濾過程所抓取得到的數(shù)據(jù)分析過濾結(jié)果還會盡可能對以后的網(wǎng)頁抓取處理過程進(jìn)行給出實時反饋和技術(shù)指導(dǎo)。它能夠因為固定的目標(biāo)獲取搜索的目標(biāo),對于可以自由的選擇的自動訪問每個網(wǎng)頁與您的相關(guān)地址,得到所有您需要的相關(guān)信息。通用方式爬蟲網(wǎng)站工作基本流程:網(wǎng)站爬取多個網(wǎng)頁-數(shù)據(jù)存儲網(wǎng)站數(shù)據(jù)分析-網(wǎng)站內(nèi)容優(yōu)化處理-網(wǎng)站提供網(wǎng)頁檢索/優(yōu)化排名網(wǎng)站服務(wù)網(wǎng)頁網(wǎng)頁聚焦通用爬蟲:爬蟲是指程序員所編寫的針對某種網(wǎng)站內(nèi)容的通用爬蟲。面向某個內(nèi)容主題主動搜索爬蟲,面向某個內(nèi)容主題需求主動搜索爬蟲:我們通常會針對某種特定的內(nèi)容主題或者內(nèi)容提供需求信息去主動跳蟲爬取這些主題信息,而且我們通常會努力的去保證這些主題信息和你的內(nèi)容需求盡可能的的緊密相關(guān)。<!DOCTYPEhtml><!--[ifIE8]><htmlclass="ie8"><![endif]--><!--[ifIE9]><htmlclass="ie9"><![endif]--><!--[ifgtIE9]><!--><html><!--<![endif]--><head><title>蜘蛛俠:英雄遠(yuǎn)征-貓眼電影-一網(wǎng)打盡好電影</title><linkrel="dns-prefetch"href="http://"/><linkrel="dns-prefetch"href="http://"/><linkrel="dns-prefetch"href="http://"/><linkrel="dns-prefetch"href="http://"/><linkrel="dns-prefetch"href="http://"/><linkrel="dns-prefetch"href="http://"/><linkrel="dns-prefetch"href="http://"/><linkrel="dns-prefetch"href="http://"/>(2)把網(wǎng)頁界面先調(diào)試出來<formname="user"action="#"method="get"> <tablealign="center"> <tr> <td>姓名</td> <td> <inputtype="text"name="username"/> </td> </tr> <tr> <td>學(xué)號</td> <td> <inputtype="password"/> </td> </tr> <tr> <td>性別</td> <td> <inputtype="radio"name="name"/>男 <inputtype="radio"name="name"checked="checked"/>女 </td> </tr> <tr> <td>學(xué)院</td> <td> <select> <option>西安財經(jīng)大學(xué)</option> <option>陜西師范大學(xué)</option> <option>長安大學(xué)</option> </select> <select> <option>數(shù)學(xué)</option> <option>統(tǒng)計</option> <option>會計</option> </select> </td> </tr> <tr> <td>愛好</td> <td> <inputtype="checkbox"name="sport"checked="checked"/>學(xué)習(xí) <inputtype="checkbox"name="basketball"/>運動 <inputtype="checkbox"name="volleyball"/>旅游 </td> </tr> <tr> <td>郵箱</td> <td> <inputtype="text"name="emall"/> </td> </tr> <tr> <td>成績</td> <td> <inputtype="text"name="phone"/> </td> </tr> <tr> <td>上傳頭像</td> <td> <inputtype="file"name="file"/> </td> </tr> <tr> <td>個人簡介</td> <td> <textarearows="15"cols="50"></textarea> </td> </tr> <tr> <td></td> <td> <inputtype="button"value="登錄"/> <inputtype="submit"name="tijiao"value="提交"/> <inputtype="reset"name="quxiao"value="取消"/> </td> </tr> </table></form> (3)解釋導(dǎo)入的五個庫和包#導(dǎo)入網(wǎng)絡(luò)進(jìn)行下載importrequests#導(dǎo)入網(wǎng)絡(luò)進(jìn)行下載過程有報錯異常,然后導(dǎo)入一個報錯庫fromrequests.exceptionsimportRequestException#進(jìn)行匹配importre#爬出來所有文字,圖片存在這里importjson#poolfrommultiprocessingimportpool2、項目的設(shè)計1寫一個簡單的html網(wǎng)頁。<html><head><title>myfirstwebpage</title></head><body>helloword歡迎來到我的第一個網(wǎng)頁</body></html>2.總結(jié)爬蟲過程一、基本流程(1)發(fā)起請求使用一個命令式的http庫向一個指定服務(wù)目標(biāo)一個指定站點上的用戶同時發(fā)起一個命令式的請求,即是向站點用戶發(fā)送一個請求命令htrequest;Request包含:請求頭、請求體等(2)獲取響應(yīng)內(nèi)容如果服務(wù)器能正常響應(yīng),則會得到一個Response;Response包含:html,json,圖片,視頻等(3)解析內(nèi)容解析如ahtml類型數(shù)據(jù):正則表達(dá)式,第三方形式解析數(shù)據(jù)庫;函數(shù)如果abeautifulsoup,pyquery等等比如就像是解析json函數(shù)數(shù)據(jù)或者是:json數(shù)據(jù)模塊解析這個數(shù)據(jù):以b的方式寫入文件(4)保存數(shù)據(jù)數(shù)據(jù)可保存在數(shù)據(jù)庫、文件等三、實踐過程1編寫一個歷年學(xué)生考試成績分值轉(zhuǎn)換計算程序,用戶需要輸入一個百分制的歷年學(xué)生考試成績,成績分值大于或分?jǐn)?shù)等于90的否則輸出"優(yōu)秀",成績分值大于或分?jǐn)?shù)等于80小于90的否則輸出"良好",成績分?jǐn)?shù)大于60或成績等于60小于80的否則輸出"合格",否則就會輸出"掛科啦".Score=int(input(2.li=[11,44,22,33,22,88],在索引為1的位置添加元素99,打印輸出,然后對添加完成之后的元素進(jìn)行按降序排列大小,打印輸出.3.li=[1,12,9,"你的學(xué)號",["你的名字",["19",10],"愛好"],"caijing",True],把索引為1的位置替換成120,打印輸出.然后再把120替換為[11,22,33,44],打印輸出四項目使用說明importrequestsfromrequests.exceptionimportsrequestexceptionimpartreimpertjsonfromthemultiprocessingimprtPoolheaders={"Accept":text/html,application/xhtml&xml,application/xml;,"Accept—Encoding":"gzop""Accept--Language":"zh-CN,zh;q=0.8","Referered":"/","User--Agent":"Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/587.75(KHTML,likeGecko)Chrome/42.0.2311.90Safari/537.36"}defget_one_page(url):try:response=requests.get(url,headers=headers)ifresponse.status_code==200:returnresponse.textreturnNoneexceptRequestException:returnNonedefpaser_one_page(html):pattern=pile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a'+'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'+'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>',re.S)items=re.findall(pattern,html)foriteminitems:yield{'index':item[0],'image':item[1],'title':item[2],'actor':item[3].strip()[3:],'time':item[4].strip()[5:],'score':item[5]+item[6],}defwrite_to_file(content):withopen('result.json','a',encoding='utf-8')asf:f.write(json.dumps(content,ensure_ascii=False)+'\n')f.close()defmain(offset):url='/board/4?offset='+str(offset)html=get_one_page(url)foriteminpaser_one_page(html):print(item)write_to_file(item)#導(dǎo)入網(wǎng)絡(luò)進(jìn)行下載importrequests#導(dǎo)入網(wǎng)絡(luò)進(jìn)行下載過程有報錯異常,然后導(dǎo)入一個報錯庫fromrequests.exceptionsimportRequestException#進(jìn)行匹配importre#爬出來所有文字,圖片存在這里importjson#poolfrommultiprocessingimportpoolif__name__=='__main__':foriinrange(10):main(i*10)三、Python網(wǎng)絡(luò)爬蟲實踐體會自從短學(xué)期開始學(xué)習(xí)了Python后就感覺到Python網(wǎng)絡(luò)爬蟲是一個值得研究的東西。雖然我們短學(xué)期學(xué)習(xí)的東西非常的淺顯表面,但是確是作為我們學(xué)習(xí)Python網(wǎng)絡(luò)爬蟲的開始和起步。在之前,關(guān)于計算機相關(guān)我們的了解僅僅停留在常用辦公軟件上,最多就是部分同學(xué)有在之前的課程上接觸過c++等課程。關(guān)于Python網(wǎng)絡(luò)爬蟲相關(guān)技術(shù)算法應(yīng)用大家?guī)缀醵际且桓挪恢?。?jīng)過這段時間的學(xué)習(xí),雖說大家也都還是一知半解只知皮毛而已,但在練習(xí)代碼的過程中添加了許多對于Python網(wǎng)絡(luò)爬蟲的了解,更是對于編程這個大的門類有了新的更深層次的認(rèn)識,對爬蟲有了初步的了解。我們首先第一節(jié)課做的是Python的安裝,了解了整個軟件的使用操作方式及界面分布。首先在安裝的時候我就沒辦法順利的完成整個安裝過程最后還還是在老師的幫助下順利的完成了軟件的下載安裝。第二節(jié)我們又開始進(jìn)行了各種簡單的源代碼的分析操作,有一百加到一百和,有進(jìn)行排序,有比例的大小,有進(jìn)行篩選等而信息各種各樣,簡直無所不能。讓許多人眼花繚亂,嘆為觀止。但同時Python爬蟲軟件并不像我們想到的那么輕松容易,僅僅是一個簡單的加減排序就需要幾行的代碼就可以實現(xiàn)但是我還是錯了好多次,大小寫,中英文標(biāo)點等等都可能是這個過程失敗。就和我們在生活中一樣,看似是小小一點的事情感覺自己可以輕輕松松就完成但是往往到最后就偏偏在一些小的地方出差錯使整個事情一團(tuán)糟。所以我們要認(rèn)真的對待每一步的操作,認(rèn)認(rèn)真真仔仔細(xì)細(xì)的去完成它。而且在這個過程中,我們需要全程都保證自己的專注,不能有一絲的馬虎,一旦有一節(jié)課沒有認(rèn)真的對待就會發(fā)現(xiàn)不知道老師在上面說些什么了,完全就跟不上老師的季度了。所以要認(rèn)認(rèn)真真的對待每一次的學(xué)習(xí)以及每一次的機會,專注的完成每一次的事情。最后對于剛剛接觸的東西謝不能盲目自大,不知所謂。經(jīng)過一周的學(xué)習(xí),基本老師讓進(jìn)行的代碼操作我們都可以寫出來的時候,大家都以為已經(jīng)掌握了這門

溫馨提示

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

評論

0/150

提交評論