python網(wǎng)絡(luò)爬蟲實訓(xùn)心得_第1頁
python網(wǎng)絡(luò)爬蟲實訓(xùn)心得_第2頁
python網(wǎng)絡(luò)爬蟲實訓(xùn)心得_第3頁
python網(wǎng)絡(luò)爬蟲實訓(xùn)心得_第4頁
python網(wǎng)絡(luò)爬蟲實訓(xùn)心得_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

成果形式:實踐報告成果名稱:關(guān)于python網(wǎng)絡(luò)爬蟲的實現(xiàn)關(guān)于python網(wǎng)絡(luò)爬蟲的實現(xiàn)的實訓(xùn)心得實踐目的1.知道爬蟲的定義:抓取網(wǎng)站或者應(yīng)用的內(nèi)容,提取實用的價值。模仿用戶在瀏覽器或app應(yīng)用上的操作,實現(xiàn)自動化。2.學(xué)習(xí)python爬蟲的構(gòu)架和流程:經(jīng)過URL管理器,讓待爬取的url集合和已爬取的url匯總,再傳遞待爬取的url給網(wǎng)頁下載器;再通過網(wǎng)頁下載器,爬取url對應(yīng)網(wǎng)頁,存儲為字符串,傳遞給網(wǎng)頁解析器;通過網(wǎng)頁解析器提取存儲信息。3.學(xué)習(xí)通過寫代碼實際操作實現(xiàn)phthon爬蟲二、實踐內(nèi)容1.項目的分析1.解釋什么是爬蟲,并舉例:2.學(xué)會使用火狐瀏覽器開發(fā)者工具2.項目的設(shè)計1.寫一個簡單的html網(wǎng)頁2.查看寫出來的網(wǎng)頁3.項目的實現(xiàn)(代碼)1.輸入登錄名2在寫出的數(shù)組值后追加元素3計算一組數(shù)組中元素22出現(xiàn)的次數(shù)4.項目使用說明實踐過程項目的分析1.解釋爬蟲,并舉例:簡單的爬蟲就是移用模塊,利用函數(shù)。get函數(shù)從給出的URL中得到數(shù)據(jù),然后打印出狀態(tài)碼和獲取內(nèi)容。注意:.text對應(yīng)的是Unicode類型,.content對應(yīng)的是bytes型。當(dāng)需要的數(shù)據(jù)是文本時,用.text,當(dāng)需要下載圖片時,用.content,.text返回的值與.content的值有所不同如圖所示:當(dāng)我們準(zhǔn)備大量,高頻率訪問網(wǎng)站時,特別是訪問的還是類似于京東這樣的商業(yè)網(wǎng)站,不能只是用個get加個url,這樣做是無效的,得不到網(wǎng)站數(shù)據(jù)的,需要進一步輸入相關(guān)代碼,才能爬取京東網(wǎng)站的數(shù)據(jù)。2.學(xué)會通過火狐瀏覽器開發(fā)者工具爬取一個瀏覽器。需要用到火狐瀏覽器開發(fā)者工具,打開火狐瀏覽器按F12!第一步輸入網(wǎng)址,然后按F12,找到網(wǎng)絡(luò)這一欄。它會提示重新載入,那就再按一下F5,再重新載入,如圖所示。注意以下幾欄。然后找到并點開我們需要的,也就是第一個,如圖示:這時頁面上就會顯示相應(yīng)的信息。包括:消息頭,Cookie,參數(shù),響應(yīng),耗時,倉庫追蹤。2.項目的設(shè)計1.寫一個簡單的html網(wǎng)頁<!DOCTYPEhtml>

<htmllang="en">

<head>

<metacharset="UTF-8">

<title>數(shù)學(xué)類1701尹春梅</title>

</head>

<body>

<ahref="/xhtml/">統(tǒng)計學(xué)院</a>

<buttontype="submit">提交</button>

</body>

</html>運行結(jié)果:2.Python爬蟲架構(gòu)由調(diào)度器、URL管理器、網(wǎng)頁下載器、網(wǎng)頁解析器、應(yīng)用程序組成。調(diào)度器:負責(zé)調(diào)度URL管理器、下載器、解析器之間的工作,讓程序平穩(wěn)運行。URL管理器:實現(xiàn)待爬取的URL和已爬取的URL地址的收集,經(jīng)過內(nèi)存、數(shù)據(jù)庫、緩存數(shù)據(jù)庫來完成收集。網(wǎng)頁下載器:通過傳入URL地址來下載網(wǎng)頁,將網(wǎng)頁轉(zhuǎn)換成一個字符串,網(wǎng)頁下載器包括需要登錄、代理、和cookie,requests網(wǎng)頁解析器:對一個已經(jīng)完成的網(wǎng)頁字符串進行解析,提取出符合要求的信息,或者根據(jù)DOM樹的解析方法來解析。應(yīng)用程序:提取的網(wǎng)頁中的各類數(shù)據(jù)組成的一個程序。代碼如下:fromurllibimportrequest,parse

fromhttpimportcookiejar

ur1='/translate'

form_data={}

data=parse.urlencode(form_data).encode('utf-8')

headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/66.0.3359.170Safari/537.36'}

req=request.Request(ur1,data=data,headers=headers)

cookie=cookiejar.CookieJar()

handler=request.HTTPCookieProcessor(cookie)

opener=request.build_opener(handler)

responce=opener.open(req)

html=responce.read().decode()

print(html)、3.項目的實現(xiàn)(代碼)1.輸入登錄名:n=1

whilen<4:

username=input("請輸入用戶名:")

password=input("請輸入密碼:")

ifusername=="尹春梅"andpassword=="1704970102":

print("登錄成功")

n=5

else:

ifn==3:

print("密碼錯誤")

n=5

else:

n=n+1結(jié)果:2在下列數(shù)組值后追加元素L1=[1,2,3,22,4,]

L1.append(5)

L1.append("caijing")

L1.append([1100,0011])

print(l1)結(jié)果:3計算下列數(shù)組中元素22出現(xiàn)的次數(shù)li=[11,22,33,22,44,5,'alex',[1234,1234]]

c=li.count(22)

print(c)結(jié)果:F:\programdata\Anaconda3\python.exeC:/Users/微軟中國/PycharmProjects/untitled/jjj.py2Processfinishedwithexitcode04.項目使用說明第一步:抓取網(wǎng)頁先隨機選取一些URL,將選取得到的URL放入待抓取URL隊列中,取出待抓取URL,通過解析得到主機IP,下載URL所對應(yīng)的相關(guān)網(wǎng)頁,實現(xiàn)一次循環(huán)。之后通過新網(wǎng)站向搜索引擎提交網(wǎng)址在其他網(wǎng)站上設(shè)置新網(wǎng)站外鏈搜索引擎和DNS解析服務(wù)商,這樣就實現(xiàn)了抓取網(wǎng)頁。第二步:數(shù)據(jù)存儲將數(shù)據(jù)存入原始頁面數(shù)據(jù)庫。頁面數(shù)據(jù)與用戶瀏覽器得到的HTML完全一樣。第三步:預(yù)處理對爬蟲抓取回來的頁面進行預(yù)處理。提取文字中文分詞消除噪音索引處理鏈接關(guān)系計算特殊文件處理.第四步:提供檢索服務(wù),網(wǎng)站排名為用戶提供關(guān)鍵字搜索服務(wù),也就是用戶輸入一個詞語,就會聯(lián)想到相似的語句,再將用戶搜索得到的信息展現(xiàn)給用戶。同時會根據(jù)頁面的鏈接的訪問量排名來進行網(wǎng)站排名,排名值高的網(wǎng)站在搜索結(jié)果中會排名較前。四、實踐體會通過兩周的學(xué)習(xí),學(xué)習(xí)了python,讓我會寫一些簡單代碼,對爬蟲有了一定的學(xué)習(xí),學(xué)習(xí)心得如下:很感謝學(xué)校安排了兩周關(guān)于python的學(xué)習(xí),讓我對它有了許多了解,也對之后繼續(xù)學(xué)習(xí)它產(chǎn)生了濃烈的興趣。在沒有接觸它之前,從學(xué)長學(xué)姐那里聽說一些關(guān)于python的信息,感覺它是一門很難的課程,擔(dān)心自己學(xué)不好它。后來上課的時候發(fā)現(xiàn),老師講的很清楚,也很生動,只要靜下心來學(xué),就一定可以的。開始上課的第一天,老師就舉例子給我們解釋了什么是phthon,還布置了作業(yè),讓我們在課后也積極搜索吸收關(guān)于python的知識。第一天的學(xué)習(xí),讓我了解到python的運行過程并不復(fù)雜,代碼在運行的過程中由CPU進行編譯,一邊編譯一邊執(zhí)行腳本語言,不像編譯型語言那樣需要先將代碼編譯成二進制才能運行。像這樣專業(yè)化的術(shù)語知識,開拓了我平時的知識面,因為平時接觸最多的是數(shù)學(xué)公式和定理,正好通過這次學(xué)習(xí),能夠豐富自己其他方面的知識,第一天對自己之后的學(xué)習(xí)充滿期待,希望自己之后能熟練運用python來解決一些實際問題。雖然明白學(xué)習(xí)一門新的課程會有許多挑戰(zhàn),但是沒想到挑戰(zhàn)確實挺多的,首先是對于一些新鮮知識的理解與吸收,例如老師提到的程序塊,我總是容易將它與程序聯(lián)系起來,還很疑惑二者到底有什么區(qū)別,程序塊是怎么定義的。后來在上課間隙,通過提問老師,讓我的問題得到了解答:程序塊是根據(jù)代碼的縮進來表示程序的塊和代碼的層次,而程序通過一個邏輯行單位進行執(zhí)行,一個邏輯行又可以由多個物理行組成,一個物理行又可以分成多個邏輯行,我們通過“;”來分隔同一物理行的多個邏輯行。通過老師的解答,自己再多加以理解,類似于這樣的專業(yè)知識就清楚明白多了。這是剛開始學(xué)習(xí)所面對的知識點上的困惑,在之后的學(xué)習(xí)時間,老師著重講解了如何寫簡單的網(wǎng)頁,如何實現(xiàn)一些簡單的項目,如何實現(xiàn)爬取數(shù)據(jù)等。正如常言道,學(xué)習(xí)了理論知識之后,應(yīng)該把它運用到生活實踐中,就是白學(xué)了。所以在經(jīng)歷了兩天關(guān)于python的理論知識的學(xué)習(xí)后,老師開始帶領(lǐng)我們在自己的電腦上實際操作。先用老師發(fā)的程序安裝包在各自的電腦上安裝了程序后,老師開始教學(xué)。老師的教學(xué)也照顧到了每位同學(xué)(因為上課人數(shù)較多,有時候去晚了可能就會坐在后排,聽不清老師的講解,但是老師每次都會努力提高音量,并且一步一步的當(dāng)場在電腦上輸入代碼,讓同學(xué)們也跟著他同步輸入,助教老師也會在教室里走動,隨時幫助輸入錯誤的同學(xué)),老師講解一遍之后,會留給我們一些時間,讓我們再試一遍,只有確保了大家基本上都會這一個代碼后,老師才接著講后來的代碼。下課后。老師會在我們的學(xué)習(xí)群里發(fā)放當(dāng)天的課堂重點筆記,以及上課我們所寫的所有代碼,還會布置相應(yīng)的題目。正是老師這樣細致的教學(xué),讓我們能及時的發(fā)現(xiàn)問題并解決問題。在課后時間還有充足的時間來嘗試做題,通過做題加深上課的印象,將上課所學(xué)的,繼續(xù)延伸拓展。這樣的學(xué)習(xí)方法,真的是幫助我能在短期的時間內(nèi)吸收新的知識,很感謝老師的耐心幫助。輸入代碼是一件很嚴謹?shù)氖虑?,有時候輸錯一個符號或者沒有區(qū)分大小寫,輸出來的代碼都是不能運行的。而我又是一個比較粗心的人,所以特別容易輸錯了,印象最深的是在要求寫一個代碼,代碼要求呈現(xiàn)的結(jié)果是一個登錄的網(wǎng)頁,登陸網(wǎng)頁要包含許多中文信息。這也就意味著在輸入的過程中要隨時注意切換中英文和大小寫。我小心翼翼的輸入每一個符號,還要隨時注意切換中英文,大小寫。其實切換中英文還是很明顯能看出不同的,但是在輸入標(biāo)點時,就很容易出錯了。當(dāng)我輸入一個漢字詞語時,需要用符號將輸入的漢字詞語引用出來,而這時就需要用英文狀態(tài)下的雙引號,稍不注意就輸錯了。當(dāng)我好不容易輸完所有字符,卻運行不了自己期待的頁面時,就趕緊去查看到底是那離輸錯了,但是從頭到尾檢查下來也找不到問題出在哪里了。最后,通過舉手尋求老師的幫助后才發(fā)現(xiàn)是我一個標(biāo)點符號輸錯了,應(yīng)該是英文狀態(tài)下的符號,被我輸成中文狀態(tài)下了,所以是肯定運行不了。通過這件事情,讓我明白在之后學(xué)習(xí)的過程中一定要耐心細致,正如不積硅步,無以至千里。只有把每一步都做好了,才可能會實現(xiàn)最后的結(jié)果。這也是這次學(xué)習(xí)帶給我的最大的收獲:在互聯(lián)網(wǎng)高速發(fā)展的現(xiàn)在,我們越來越追求速度的提升,而忽略了品質(zhì)結(jié)果,一味的追求快,所獲得的結(jié)果是不言而喻的。萬事必做于細,才能做到萬無一失,精益求精就一定可以取得好的成果。當(dāng)我一步一步慢慢的認真的輸入字符,在一次性輸入運行成功的時候,心情非常激動,而實際上,像這樣一次性實現(xiàn)代碼的運行比一次又一次調(diào)試修改節(jié)省了更多的時間,也養(yǎng)成了自己耐心細致的品質(zhì)。我也相信在之后的其他學(xué)習(xí)生活中,我會繼續(xù)秉承這樣的態(tài)度去做好每件事情,特別是在學(xué)習(xí)數(shù)學(xué)的過程中,這是非常實用的,稍不注意就可能算錯一道習(xí)題而陷入死循環(huán)的狀況在之后應(yīng)該也會大幅度下降的。耐心細致只是一方面,找對學(xué)習(xí)的方法也很重要。知識點方面,多花點時間還是可以理解清楚的,但是在寫代碼,特別是自己實際操作解決問題時,還是會遇到有許多的問題。比如在一道要求輸入名字的題目中,我在思考能不能通過函數(shù)來判斷名字是否輸入正確,但是當(dāng)我輸入函數(shù)后,發(fā)現(xiàn)得不到我需要的結(jié)果,通過查詢資料,反復(fù)修改實驗多次也沒辦法。后來在上課的時候,我把自己寫的代碼請教老師,老師看了一會兒就指出了問題的根本:變量在最開始輸入夫人時候是沒有類型的,在運行的時候才需要去確定數(shù)據(jù)的類型。此外,變量沒有固定類型,前一次賦值的時候?qū)?yīng)的類型就是下一次輸入時的類型。變量除了可以是固態(tài)的,也可以是動態(tài)的,隨著輸入的變化而變化。另外,老師還提醒我我輸入的代碼中忽視了函數(shù)定義中沒有返回值的說明。如果沒有返回值的話,運行代碼的時候會默認返回,如果顯示了其他語句,則返回正確的值。經(jīng)過老師的查看,找出了問題的根本是我把變量定義錯了,函數(shù)使用的也不對,應(yīng)該用表示選擇的if語句。此外,老師還幫我把代碼優(yōu)化,刪除了不必要的字符串,讓代碼看起來思路更清楚,更明白。也是通過這次書寫代碼時所遇到的問題,讓我清楚明白了學(xué)習(xí)不是一蹴而就的,要腳踏實地,要多問問題,才能發(fā)現(xiàn)問題,解決問題。其實在之前的學(xué)習(xí)生活中,我也遇到了許多問題,但是因為性格等多方面原因,不愿意去尋求他人幫助,喜歡一個人獨自解決,但顯然這是不對的,因為這些堆積的問題久而久之沒有及時的得到解決,就變成我知識點的漏洞,只會讓我學(xué)到的東西變得越來越少,越來越片面。也是因為這次機會,讓我敢于向老師尋求解決問題的辦法。其實踏出這一步之后,豁然開朗。不僅是這次寫錯代碼能得到改正,也是幫助我養(yǎng)成問題的習(xí)慣。當(dāng)然這種尋求幫助應(yīng)當(dāng)是建立在自己努力修改嘗試后的,而不是一遇到問題就希望得到別人的幫助,這樣效果也是甚微的。三人行,必有我?guī)熝?。不問問題,不會問問題,顯然是不對的,善學(xué),善問,才能促使我們不斷進步。在之后的學(xué)習(xí)生活中,我也應(yīng)當(dāng)像這次一樣,在遇到實在解決不了的問題時,敢于向朋友,老師尋求幫助,這也是讓我們一起共同進步的好方法。學(xué)習(xí)的方法有很多,還有一點很重要的就是一定要做好筆記。好記性不如爛筆頭是我們從一開始接觸學(xué)習(xí)就知道的道理。特別是在這次學(xué)習(xí)過程中,做好筆

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論