《Python編程入門與實踐(微視頻版)》課件 第11章 Python網(wǎng)絡(luò)編程_第1頁
《Python編程入門與實踐(微視頻版)》課件 第11章 Python網(wǎng)絡(luò)編程_第2頁
《Python編程入門與實踐(微視頻版)》課件 第11章 Python網(wǎng)絡(luò)編程_第3頁
《Python編程入門與實踐(微視頻版)》課件 第11章 Python網(wǎng)絡(luò)編程_第4頁
《Python編程入門與實踐(微視頻版)》課件 第11章 Python網(wǎng)絡(luò)編程_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Socket是計算機之間進行網(wǎng)絡(luò)通信的一套程序接口,最初由伯克利大學(xué)研發(fā),如今已成為網(wǎng)絡(luò)編程的標(biāo)準(zhǔn),支持跨平臺的數(shù)據(jù)傳輸。Socket作為網(wǎng)絡(luò)通信的基礎(chǔ),建立了發(fā)送端和接收端之間的數(shù)據(jù)和命令傳遞管道。Python提供了socket模塊,對Socket進行了二次封裝,使得開發(fā)者能夠更方便地訪問Socket接口,從而大幅簡化了程序開發(fā)步驟,提高了開發(fā)效率。第11章Python網(wǎng)絡(luò)編程11.1計算機網(wǎng)絡(luò)基礎(chǔ)知識(1)網(wǎng)絡(luò)體系結(jié)構(gòu)。目前較為主流的網(wǎng)絡(luò)體系結(jié)構(gòu)包括ISO/OSI參考模型和TCP/IP協(xié)議族。這兩種體系結(jié)構(gòu)均采用了分層設(shè)計與實現(xiàn)的方式。例如,ISO/OSI參考模型將網(wǎng)絡(luò)分為七個層次:應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層;而TCP/IP則簡化為四個層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和鏈路層。分層設(shè)計的優(yōu)勢在于,各層可以獨立進行設(shè)計與實現(xiàn),只要確保相鄰層之間的調(diào)用規(guī)范和接口不變,就能夠靈活地調(diào)整某一層的內(nèi)部實現(xiàn),以實現(xiàn)優(yōu)化或滿足其他需求。11.1計算機網(wǎng)絡(luò)基礎(chǔ)知識(2)網(wǎng)絡(luò)協(xié)議。網(wǎng)絡(luò)協(xié)議是計算機網(wǎng)絡(luò)中進行數(shù)據(jù)交換時所遵循的一系列規(guī)則、標(biāo)準(zhǔn)或約定的集合。網(wǎng)絡(luò)協(xié)議的三大要素包括語法、語義和時序。簡單來說,語義表示要完成的任務(wù),語法描述如何執(zhí)行這些任務(wù),而時序則規(guī)定了事件發(fā)生的順序。 語法:語法定義了用戶數(shù)據(jù)和控制信息的結(jié)構(gòu)與格式。 語義:語義用于解釋控制信息各部分的含義,明確需要發(fā)送何種控制信息、應(yīng)采取的動作以及相應(yīng)的反饋。 時序:時序詳細(xì)說明事件發(fā)生的順序,也稱為“同步”。11.1計算機網(wǎng)絡(luò)基礎(chǔ)知識(3)應(yīng)用層協(xié)議。應(yīng)用層協(xié)議直接與最終用戶交互,定義了在不同終端系統(tǒng)上的應(yīng)用程序進程如何相互傳遞消息。以下是幾種常見的應(yīng)用層協(xié)議。

DNS:域名服務(wù),用于實現(xiàn)域名與IP地址之間的轉(zhuǎn)換。

FTP:文件傳輸協(xié)議,可以通過網(wǎng)絡(luò)在不同平臺之間傳輸文件。

HTTP:超文本傳輸協(xié)議。

SMTP:簡單郵件傳輸協(xié)議。

TELNET:遠程登錄協(xié)議。11.1計算機網(wǎng)絡(luò)基礎(chǔ)知識(4)傳輸層協(xié)議。在傳輸層,主要運行著TCP和UDP兩種協(xié)議。TCP是一種面向連接的可靠傳輸協(xié)議,提供質(zhì)量保證,但開銷較大;而UDP則是一種無連接的盡最大努力傳輸協(xié)議,開銷較小,常用于視頻點播(VideoOnDemand,VOD)等應(yīng)用。TCP和UDP并沒有優(yōu)劣之分,主要取決于具體的應(yīng)用場景。在傳輸層中,端口號用于標(biāo)識和區(qū)分具體的應(yīng)用層進程,每當(dāng)創(chuàng)建一個應(yīng)用層網(wǎng)絡(luò)進程時,系統(tǒng)會自動分配一個端口號與之關(guān)聯(lián),這是實現(xiàn)網(wǎng)絡(luò)端到端通信的重要基礎(chǔ)。11.1計算機網(wǎng)絡(luò)基礎(chǔ)知識(5)IP地址。IP地址運行在網(wǎng)絡(luò)體系結(jié)構(gòu)的網(wǎng)絡(luò)層,是網(wǎng)絡(luò)互連的重要基礎(chǔ)。IP地址(32位或128位二進制數(shù))用于標(biāo)識網(wǎng)絡(luò)上的主機。在公開網(wǎng)絡(luò)或同一局域網(wǎng)內(nèi),每臺主機必須使用不同的IP地址。然而,由于網(wǎng)絡(luò)地址轉(zhuǎn)換(NetworkAddressTranslation,NAT)和代理服務(wù)器等技術(shù)的廣泛應(yīng)用,不同內(nèi)網(wǎng)中的主機IP地址可以相同,且相互之間可以正常工作而不受影響。IP地址與端口號共同用于標(biāo)識網(wǎng)絡(luò)上特定主機上的特定應(yīng)用進程,這種組合通常被稱為Socket。11.1計算機網(wǎng)絡(luò)基礎(chǔ)知識(6)MAC地址。MAC地址,又稱為網(wǎng)卡地址或物理地址,是一個48位的二進制數(shù),用于標(biāo)識不同網(wǎng)卡的物理地址。可以通過在命令提示符窗口中使用ipconfig/all命令查看本機的IP地址和MAC地址,相關(guān)信息可參考11-1所示。11.2TCP和UDP編程如前所述,UDP和TCP是網(wǎng)絡(luò)體系結(jié)構(gòu)中傳輸層(也稱為運輸層)運行的兩大重要協(xié)議。TCP適用于對效率要求相對較低而對準(zhǔn)確性要求較高的場合,例如文件傳輸和電子郵件等;而UDP則適用于對效率要求較高、對準(zhǔn)確性要求較低的場合,例如視頻在線點播和網(wǎng)絡(luò)語音通話等。在Python中,主要使用socket模塊來支持TCP和UDP編程。11.2.1TCP編程11.2.2UDP編程11.2.1TCP編程在常見應(yīng)用中,大多數(shù)連接都是基于可靠的TCP協(xié)議。在創(chuàng)建TCP連接時,主動發(fā)起連接的實體稱為客戶端,而被動響應(yīng)連接的實體則稱為服務(wù)器。TCP客戶端編程TCP服務(wù)器端編程11.2.2UDP編程TCP協(xié)議建立可靠的連接,允許通信雙方以流的形式發(fā)送數(shù)據(jù)。與TCP相比,UDP是一種面向無連接的協(xié)議。使用UDP協(xié)議時,不需要建立連接,只需知道對方的IP地址和端口號,即可直接發(fā)送數(shù)據(jù)包。然而,無法保證數(shù)據(jù)包是否能夠到達接收方。雖然UDP數(shù)據(jù)傳輸?shù)目煽啃暂^差,但它的主要優(yōu)點在于速度較快,因此對于對可靠性要求不高的應(yīng)用場景,使用UDP協(xié)議是一個合適的選擇。通過UDP協(xié)議傳輸數(shù)據(jù)的方式類似于TCP,通信雙方同樣分為客戶端和服務(wù)器。11.3網(wǎng)絡(luò)嗅探器嗅探器程序能夠檢測本機所在局域網(wǎng)內(nèi)的網(wǎng)絡(luò)流量及數(shù)據(jù)包的收發(fā)情況,對網(wǎng)絡(luò)管理具有重要意義,屬于系統(tǒng)運維的范疇。為了實現(xiàn)網(wǎng)絡(luò)流量嗅探,需要將網(wǎng)卡設(shè)置為混雜模式,并且運行嗅探器程序的用戶賬號必須具備系統(tǒng)管理員權(quán)限。11.4端口掃描器在網(wǎng)絡(luò)安全和黑客技術(shù)領(lǐng)域,端口掃描是一項常用的技術(shù)。它可以用來探測指定主機上是否開放了特定端口,從而進一步判斷該主機是否運行著某些重要的網(wǎng)絡(luò)服務(wù)。通過這些信息,最終可以評估潛在的安全漏洞。因此,從某種意義上來說,端口掃描也可以視為系統(tǒng)運維的一部分。11.5網(wǎng)絡(luò)爬蟲網(wǎng)絡(luò)爬蟲是一種按照特定規(guī)則自動抓取網(wǎng)絡(luò)信息的程序或腳本。簡單來說,網(wǎng)絡(luò)爬蟲是基于一定算法進行編程開發(fā)的工具,主要通過URL實現(xiàn)數(shù)據(jù)的獲取和挖掘。11.5.1網(wǎng)絡(luò)爬蟲概述11.5.2網(wǎng)絡(luò)爬蟲分類11.5.3網(wǎng)絡(luò)爬蟲的基本原理11.5.4網(wǎng)絡(luò)爬蟲的常用技術(shù)11.5.1網(wǎng)絡(luò)爬蟲概述網(wǎng)絡(luò)爬蟲,又稱為網(wǎng)絡(luò)蜘蛛或網(wǎng)絡(luò)機器人,在某些社區(qū)中也常被稱為網(wǎng)頁追逐者。網(wǎng)絡(luò)爬蟲能夠按照指定的規(guī)則(即爬蟲算法)自動瀏覽和抓取網(wǎng)絡(luò)信息。借助Python,編寫爬蟲程序或腳本變得非常簡單。在日常生活中,網(wǎng)絡(luò)爬蟲的應(yīng)用非常廣泛,搜索引擎便是其中的重要例子。例如,百度搜索引擎使用的爬蟲被稱為“百度蜘蛛”(Baiduspider)。百度蜘蛛是一個自動化程序,負(fù)責(zé)在浩瀚的互聯(lián)網(wǎng)中抓取信息,每天收集和整理網(wǎng)頁、圖片、視頻等內(nèi)容。當(dāng)用戶在百度搜索引擎中輸入關(guān)鍵詞時,百度會從收集到的信息中提取相關(guān)內(nèi)容,并按一定順序展示給用戶。在百度蜘蛛的工作過程中,搜索引擎會構(gòu)建一個調(diào)度程序來管理其抓取任務(wù)。這些調(diào)度程序需要使用特定算法來優(yōu)化工作效率,不同的算法會導(dǎo)致爬蟲的工作效率和結(jié)果有所不同。因此,在學(xué)習(xí)爬蟲時,了解爬蟲的實現(xiàn)過程和常見的爬蟲算法是非常重要的。在某些情況下,開發(fā)者還需要根據(jù)需求自行設(shè)計相應(yīng)的算法。11.5.2網(wǎng)絡(luò)爬蟲分類根據(jù)實現(xiàn)的技術(shù)和結(jié)構(gòu),網(wǎng)絡(luò)爬蟲可以分為以下幾種類型:通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量式網(wǎng)絡(luò)爬蟲和深層網(wǎng)絡(luò)爬蟲等。在實際應(yīng)用中,通常是這些爬蟲類型的組合。通用網(wǎng)絡(luò)爬蟲聚焦網(wǎng)絡(luò)爬蟲增量式網(wǎng)絡(luò)爬蟲深層網(wǎng)絡(luò)爬蟲11.5.3網(wǎng)絡(luò)爬蟲的基本原理一個通用的網(wǎng)絡(luò)爬蟲的基本工作流程如圖11-6所示。網(wǎng)絡(luò)爬蟲的基本工作流程如下。(1)獲取初始URL。用戶指定一個初始網(wǎng)頁的URL,作為爬取的起點。(2)爬取網(wǎng)頁。根據(jù)獲取的URL,爬取相應(yīng)的網(wǎng)頁,并從中提取新的URL地址。(3)更新URL隊列。將提取到的新URL地址放入URL隊列中,等待后續(xù)處理。(4)循環(huán)爬取。從URL隊列中讀取新的U

溫馨提示

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

評論

0/150

提交評論