




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python爬蟲大數(shù)據(jù)采集與挖掘(3)
--Web應(yīng)用架構(gòu)與協(xié)議《Python爬蟲大數(shù)據(jù)采集與挖掘》第二版.微課視頻版(清華大學(xué)出版社,2025)教材《Python爬蟲大數(shù)據(jù)采集與挖掘》及配套公眾號
(當當、京東可購書)提綱常用的Web服務(wù)器軟件Web服務(wù)器的應(yīng)用架構(gòu)Robots協(xié)議HTTP協(xié)議狀態(tài)保持技術(shù)常見的Web服務(wù)器軟件有Apache、IIS(InternetInformationServer)、Nginx、Lighttpd、Zeus、Resin、tomcat等。Python自帶Web啟動、運行/zh-cn/3/library/http.server.html提綱常用的Web服務(wù)器軟件Web服務(wù)器的應(yīng)用架構(gòu)Robots協(xié)議HTTP協(xié)議狀態(tài)保持技術(shù)基于Web的互聯(lián)網(wǎng)應(yīng)用都離不開Web服務(wù)器,在門戶網(wǎng)站、網(wǎng)絡(luò)論壇、電子商務(wù)網(wǎng)站等典型應(yīng)用中,核心部件都是Web服務(wù)器。Web應(yīng)用架構(gòu)支持不同規(guī)模、不同訪問能力的部署四種典型的應(yīng)用架構(gòu)Client/ServerClient/Server/DatabaseWeb服務(wù)器集群虛擬主機架構(gòu)Client/Server架構(gòu)客戶端可以是各種瀏覽器,也可以是爬蟲程序。Client/Server/Database在網(wǎng)絡(luò)爬蟲技術(shù)中,這種架構(gòu)支持了動態(tài)網(wǎng)頁的實現(xiàn)。Web服務(wù)器集群針對大量用戶并發(fā)訪問的應(yīng)用虛擬主機架構(gòu)虛擬主機是另一種常見的Web應(yīng)用架構(gòu),它是指在一臺服務(wù)器里配置多個網(wǎng)站,使得每個網(wǎng)站看起來具有獨立的物理計算機。虛擬主機的實現(xiàn)方法有三種:(1)基于IP地址的方法:在服務(wù)器里綁定多個IP,配置WEB服務(wù)器,把網(wǎng)站綁定在不同的IP上。當客戶端或爬蟲訪問不同的IP地址時,就得到不同的網(wǎng)站的響應(yīng)。(2)基于端口的方法:不同網(wǎng)站共享一個IP地址,但是通過不同的端口實現(xiàn)對不同網(wǎng)站的訪問。這時,客戶端訪問的URL的形式是http://hostname:port/,需要指定端口。(3)基于主機名的方法:設(shè)置DNS將多個域名解析到同一個IP地址上,IP地址對應(yīng)的服務(wù)器上配置WEB服務(wù)端,添加多個網(wǎng)站,為每個網(wǎng)站設(shè)定一個主機名。Web頁面類型根據(jù)Web頁面組成結(jié)構(gòu)中的信息內(nèi)容的生成方式不同,可以將Web頁面分為靜態(tài)頁面、動態(tài)頁面、以及偽靜態(tài)頁面三大類。動態(tài)型頁面一般需要數(shù)據(jù)庫等其他計算、存儲服務(wù)的支持靜態(tài)頁面以html文件的形式存在于Web服務(wù)器的硬盤上偽靜態(tài)頁面是以靜態(tài)頁面展現(xiàn)出來,但實際上是用動態(tài)腳本來處理的。頁面文件的組織方式大量的Web頁面文件在Web服務(wù)器中的組織管理方式對于提升頁面的可維護性是非常重要的。/2025/0226/c31a144286/page.htm虛擬根目錄子目錄文件名Html中的超鏈接(1)<p><imgSRC="images/p1.gif"><ahref="a2.html">a2</a></p>采用相對鏈接,訪問a2.html。(2)<p><imgSRC="images/p2.gif"><ahref="..\bbb\b1.html">b1</a></p>采用相對鏈接,訪問b1.html,..表示上級目錄,此處即為虛擬根目錄。(3)<p><imgSRC="images/p3.gif"><ahref=":8080\bbb\b1.html">b1</a></p>采用http開始的完整URL絕對鏈接,訪問b1.html。對于爬蟲來說,在獲取a1.html頁面之后,要尋找其中的href超鏈接。對于絕對鏈接,只需要把href=后面的字符串提取出來即可。而對于相對超鏈接,沒有完整的http,單純從這個href所指定的鏈接是無法知道其真正的結(jié)果,需要進行超鏈接的轉(zhuǎn)換。提綱常用的Web服務(wù)器軟件Web服務(wù)器的應(yīng)用架構(gòu)Robots協(xié)議HTTP協(xié)議狀態(tài)保持技術(shù)為了給Web網(wǎng)站提供靈活的控制方式來決定頁面是否能夠被爬蟲采集,1994年搜索行業(yè)正式發(fā)布了一份行業(yè)規(guī)范,即Robots協(xié)議。Robots協(xié)議又稱為爬蟲協(xié)議、機器人協(xié)議等,其全稱是RobotsExclusionProtocol,即“網(wǎng)絡(luò)爬蟲排除協(xié)議”。Robots協(xié)議的規(guī)范在瀏覽器中打開網(wǎng)站后,在網(wǎng)站首頁的地址后面添加“/robots.txt”,如果網(wǎng)站設(shè)置了訪問許可,按回車就可以看到網(wǎng)站的robots協(xié)議,即robots.txt文件內(nèi)容。Robots.txt文件的具體約定如下:(1)文件中包含一個或多個記錄,每個記錄由一行或多行空白行隔開。User-agent的使用方式是User-agent[agent_name],其中agent_name典型的有兩種,即*和具體的爬蟲標識。Disallow和Allow的使用決定了不同的訪問許可。一個目錄如果沒有顯式聲明為Disallow時,它是允許訪問的。zhihu網(wǎng)站的robots/robots.txt對baidu爬蟲的約定:定義了不允許的URL模式對sougou爬蟲的約定:定義了不允許的URL模式和允許的URL模式對其他任何爬蟲的約定:不允許爬取zhihu在編寫爬蟲程序時,了解robots的拓展功能,對于設(shè)計更加友好的爬蟲是非常有益的。這些拓展功能主要有:通配符的使用、抓取延時、訪問時段、抓取頻率和Robots版本號。具體見教材。提綱常用的Web服務(wù)器軟件Web服務(wù)器的應(yīng)用架構(gòu)Robots協(xié)議HTTP協(xié)議狀態(tài)保持技術(shù)HTTP版本的技術(shù)特性HTTP/1.1是目前使用最廣泛的HTTP協(xié)議版本,于1997年發(fā)布。HTTP/1.1與之前的版本相比,改進主要集中在提高性能、安全性以及數(shù)據(jù)類型處理等方面。(1)與HTTP/1.0最大的區(qū)別在于,HTTP/1.1默認采用持久連接。客戶端不需要在請求頭中特別聲明:Connection:keep-alive,但具體實現(xiàn)是否聲明依賴于瀏覽器和Web服務(wù)器。請求響應(yīng)結(jié)束后TCP連接默認不關(guān)閉,降低了建立TCP連接所需的資源和時間消耗。(2)HTTP/1.1支持管道(pipelining)方式,可以同時發(fā)送多個請求。在發(fā)送請求的過程中,客戶端不需要等待服務(wù)器對前一個請求的響應(yīng),就可以直接發(fā)送下一個請求。管道方式增加請求的傳輸速度,提高了HTTP協(xié)議的效率。但是,服務(wù)器在響應(yīng)時,必須按照接收到請求的順序發(fā)送響應(yīng),以保證客戶端收到正確的信息。(3)HTTP/1.1添加Host請求頭字段。隨著虛擬主機這種應(yīng)用架構(gòu)技術(shù)的發(fā)展,在一臺物理服務(wù)器上可以存在多個虛擬主機,這些虛擬主機共享一個IP地址。HTTP/1.1在請求頭中加入host請求頭字段,指出要訪問服務(wù)器上的哪個網(wǎng)站。HTTP報文HTTP報文中存在著多行的內(nèi)容,一般是由ASCII碼串組成,各字段長度是不確定的。HTTP的報文可分為兩種:請求報文與響應(yīng)報文。1.requestMessage(請求報文)客戶端
→
服務(wù)器端2.responseMessage(響應(yīng)報文)服務(wù)器端→客戶端請求報文<method><request-URL><version><headers>
<entity-body>請求體通過“param1=value1¶m2=value2”的鍵值對形式,將要傳遞的請求參數(shù)(通常是一個頁面表單中的組件值)編碼成一個格式化串。GET/example.html?name=Jack&password=1234HTTP/1.0User-Agent:Mozilla/5.0(WindowsNT10.0;WOW64)Accept:text/html
響應(yīng)報文與請求報文類似,HTTP響應(yīng)報文由起始行、頭部(headers)以及實體(entity-body)構(gòu)成。HTTP/1.0或HTTP/1.1規(guī)定的響應(yīng)報文格式如下。
<version><status><reason-phrase><headers>
<entity-body>報文的<entity-body>部分是響應(yīng)體,響應(yīng)體是HTTP要傳輸?shù)膬?nèi)容。根據(jù)響應(yīng)信息的不同,響應(yīng)體可以為多種類型的數(shù)字數(shù)據(jù),比如圖片、視頻、CSS、JS、HTML頁面或者應(yīng)用程序等。HTTP頭部Accept請求頭表示可接受的響應(yīng)內(nèi)容。同時,與Accept首部類似的還有Accept-Charset、Accept-Encoding、Accept-Language等首部,分別表示客戶端可接受的字符集、可接受的編碼方式和可接受的語言。User-Agent屬性表示客戶端的身份標識字符串。通過該字符串使得服務(wù)器能夠識別客戶使用的操作系統(tǒng)及版本、CPU類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等信息。Cookie是請求報文中可用的屬性,也是客戶端最重要的請求頭。Cookie存儲了客戶端的一些重要信息,例如身份標識、所在地區(qū)等,通常是一個文本文件。在向服務(wù)器發(fā)送URL請求時,可以將文件內(nèi)容讀出,附加在HTTP的請求頭中,可以免去用戶輸入信息的麻煩。拓展閱讀HTTP狀態(tài)碼HTTP狀態(tài)碼(HTTPStatusCode)是用來表示網(wǎng)頁服務(wù)器HTTP響應(yīng)狀態(tài)的3位數(shù)字代碼。通過狀態(tài)碼可以得知服務(wù)器的響應(yīng)狀態(tài),以便更好地處理通信過程中遇到的問題。對于爬蟲程序,可以通過這個狀態(tài)碼來確定頁面抓取結(jié)果。HTTP狀態(tài)碼由RFC2616規(guī)范定義的,并得到RFC2518、RFC2817、RFC2295、RFC2774、RFC4918等規(guī)范擴展。狀態(tài)碼包含了五種類別,即消息、成功、重定向、請求錯誤和服務(wù)器錯誤。狀態(tài)碼類別分類描述1XX信息狀態(tài)碼表示服務(wù)器已經(jīng)收到請求,需要繼續(xù)處理。在HTTP/1.0中沒有定義1XX狀態(tài)碼,因此除非在某些試驗條件下,服務(wù)器不要向此類客戶端發(fā)送1XX響應(yīng)。2XX成功狀態(tài)碼表示請求被成功接收并處理。3XX重定向狀態(tài)碼表示需要采取進一步操作才能完成請求。這類狀態(tài)碼用來重定向,對于GET或HEAD請求,服務(wù)器響應(yīng)時會自動將客戶端轉(zhuǎn)到新位置。4XX客戶端錯誤狀態(tài)碼表示客戶端的請求可能出錯,服務(wù)器無法處理請求。5XX服務(wù)器錯誤狀態(tài)碼表示服務(wù)器在處理請求的過程中內(nèi)部發(fā)生了錯誤。HTTPS提綱常用的Web服務(wù)器軟件Web服務(wù)器的應(yīng)用架構(gòu)Robots協(xié)議HTTP協(xié)議狀態(tài)保持技術(shù)由于HTTP協(xié)議本身是無狀態(tài)的,客戶端向服務(wù)器發(fā)送一個請求request,然后服務(wù)器返回一個response,不同URL之間的狀態(tài)無法共享,即狀態(tài)無法保持。在一個通信系統(tǒng)中要實現(xiàn)狀態(tài)保持,就只有從客戶端和服務(wù)端兩個角度來設(shè)計了,相應(yīng)的,這兩種狀態(tài)保持技術(shù)就是Cookie和Session。Cookie是由服務(wù)端生成,并在客戶端進行保存和讀取的一種信息,Cookie通常以文件形式保存在用戶端。查看Cookie的方法,隨瀏覽器不同而不同在google瀏覽器中查看cookieSession是另一種常見的在客戶端與服務(wù)器之間保持狀態(tài)的機制,
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)美術(shù)嶺南版六年級上冊6. 富有情趣的小禮盒教案
- 其他地區(qū)2024年新疆霍爾果斯經(jīng)濟開發(fā)區(qū)(市)醫(yī)療衛(wèi)生領(lǐng)域引進人才16人筆試歷年參考題庫附帶答案詳解
- 興安盟2024年內(nèi)蒙古興安盟事業(yè)單位秋冬季專項人才引進84人筆試歷年參考題庫附帶答案詳解
- 養(yǎng)豬場新技術(shù)應(yīng)用及可行性研究報告
- 保山2024年云南保山龍陵縣委宣傳部招聘城鎮(zhèn)公益性崗位人員筆試歷年參考題庫附帶答案詳解
- 2 我們的班規(guī)我們訂( 教學(xué)設(shè)計 )2024-2025學(xué)年統(tǒng)編版道德與法治四年級上冊
- 伊春2024年黑龍江伊春市嘉蔭縣朝陽鎮(zhèn)社區(qū)衛(wèi)生服務(wù)中心招聘醫(yī)學(xué)畢業(yè)生筆試歷年參考題庫附帶答案詳解
- 內(nèi)墻粉刷 施工方案
- 麗水2024下半年浙江麗水慶元縣機關(guān)事業(yè)單位選調(diào)(選聘)工作人員23人筆試歷年參考題庫附帶答案詳解
- 擔保合同書的方式與范圍二零二五年
- 《玉米栽培技術(shù)與病蟲害防治》課件
- 衛(wèi)生院、社區(qū)衛(wèi)生服務(wù)中心關(guān)于開具死亡醫(yī)學(xué)證明流程中死者死亡信息核實補充制度
- 2025年主管護師中級考試題庫及答案參考
- 【語文】《短文兩篇:陋室銘》課件 2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 舞蹈療法在兒童精神疾病康復(fù)中的應(yīng)用-洞察分析
- 2025年春新人教版語文一年級下冊教學(xué)課件 18 棉花姑娘
- 工貿(mào)企業(yè)負責(zé)人安全培訓(xùn)
- 《陪診從業(yè)人員能力培訓(xùn)標準》
- 《氫氣輸送管道工程設(shè)計規(guī)范》
- 管網(wǎng)工程施工重難點分析及對應(yīng)措施
- 2024ESC心房顫動管理指南解讀-完整版
評論
0/150
提交評論