版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章Python爬蟲環(huán)境與爬蟲簡介2024/4/61認(rèn)識反爬蟲目錄認(rèn)識爬蟲2配置Python爬蟲環(huán)境3小結(jié)4網(wǎng)絡(luò)爬蟲也被稱為網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)機器人,是一個自動下載網(wǎng)頁的計算機程序或自動化腳本。網(wǎng)絡(luò)爬蟲就像一只蜘蛛一樣在互聯(lián)網(wǎng)上沿著URL的絲線爬行,下載每一個URL所指向的網(wǎng)頁,分析頁面內(nèi)容。爬蟲的概念通用網(wǎng)絡(luò)爬蟲又稱為全網(wǎng)爬蟲,其爬行對象由一批種子URL擴(kuò)充至整個Web,該類爬蟲比較適合為搜索引擎搜索廣泛的主題,主要由搜索引擎或大型Web服務(wù)提供商使用。深度優(yōu)先策略:按照深度由低到高的順序,依次訪問下一級網(wǎng)頁鏈接,直到無法再深入為止。廣度優(yōu)先策略:按照網(wǎng)頁內(nèi)容目錄層次的深淺來爬行,優(yōu)先爬取較淺層次的頁面。當(dāng)同一層中的頁面全部爬行完畢后,爬蟲再深入下一層。爬蟲的原理1.通用網(wǎng)絡(luò)爬蟲聚焦網(wǎng)絡(luò)爬蟲又被稱作主題網(wǎng)絡(luò)爬蟲,其最大的特點是只選擇性地爬行與預(yù)設(shè)的主題相關(guān)的頁面?;趦?nèi)容評價的爬行策略:該種策略將用戶輸入的查詢詞作為主題,包含查詢詞的頁面被視為與主題相關(guān)的頁面。基于鏈接結(jié)構(gòu)評價的爬行策略:該種策略將包含很多結(jié)構(gòu)信息的半結(jié)構(gòu)化文檔Web頁面用來評價鏈接的重要性,其中一種廣泛使用的算法為PageRank算法?;谠鰪妼W(xué)習(xí)的爬行策略:該種策略將增強學(xué)習(xí)引入聚焦爬蟲,利用貝葉斯分類器對超鏈接進(jìn)行分類,計算出每個鏈接的重要性,按照重要性決定鏈接的訪問順序?;谡Z境圖的爬行策略:該種策略通過建立語境圖學(xué)習(xí)網(wǎng)頁之間的相關(guān)度,計算當(dāng)前頁面到相關(guān)頁面的距離,距離越近的頁面中的鏈接優(yōu)先訪問。爬蟲的原理2.聚焦網(wǎng)絡(luò)爬蟲增量式網(wǎng)絡(luò)爬蟲只對已下載網(wǎng)頁采取增量式更新或只爬行新產(chǎn)生的及已經(jīng)發(fā)生變化的網(wǎng)頁,需要通過重新訪問網(wǎng)頁對本地頁面進(jìn)行更新,從而保持本地集中存儲的頁面為最新頁面。常用的更新方法如下。統(tǒng)一更新法:以相同的頻率訪問所有網(wǎng)頁,不受網(wǎng)頁本身的改變頻率的影響。個體更新法:根據(jù)個體網(wǎng)頁的改變頻率來決定重新訪問各頁面的頻率?;诜诸惖母路ǎ号老x按照網(wǎng)頁變化頻率分為更新較快和更新較慢的網(wǎng)頁類別,分別設(shè)定不同的頻率來訪問這兩類網(wǎng)頁。爬蟲的原理3.增量式網(wǎng)絡(luò)爬蟲Web頁面按照存在方式可以分為表層頁面和深層頁面兩類。表層頁面指以傳統(tǒng)搜索引擎可以索引到的頁面,深層頁面為大部分內(nèi)容無法通過靜態(tài)鏈接獲取,隱藏在搜索表單后的,需要用戶提交關(guān)鍵詞后才能獲得的Web頁面。深層爬蟲的核心部分為表單填寫,包含以下兩種類型。基于領(lǐng)域知識的表單填寫:該種方法一般會維持一個本體庫,通過語義分析來選取合適的關(guān)鍵詞填寫表單。基于網(wǎng)頁結(jié)構(gòu)分析的表單填寫:這種方法一般無領(lǐng)域知識或僅有有限的領(lǐng)域知識,將HTML網(wǎng)頁表示為DOM樹形式,將表單區(qū)分為單屬性表單和多屬性表單,分別進(jìn)行處理,從中提取表單各字段值。爬蟲的原理4.深層網(wǎng)絡(luò)爬蟲目前,多數(shù)網(wǎng)站允許將爬蟲爬取的數(shù)據(jù)用于個人使用或者科學(xué)研究。但如果將爬取的數(shù)據(jù)用于其他用途,尤其是轉(zhuǎn)載或者商業(yè)用途,嚴(yán)重的將會觸犯法律或者引起民事糾紛。以下兩種數(shù)據(jù)是不能爬取的,更不能用于商業(yè)用途。個人隱私數(shù)據(jù):如姓名、手機號碼、年齡、血型、婚姻情況等,爬取此類數(shù)據(jù)將會觸犯個人信息保護(hù)法。明確禁止他人訪問的數(shù)據(jù):例如用戶設(shè)置了賬號密碼等權(quán)限控制,進(jìn)行了加密的內(nèi)容。還需注意版權(quán)相關(guān)問題,有作者署名的受版權(quán)保護(hù)的內(nèi)容不允許爬取后隨意轉(zhuǎn)載或用于商業(yè)用途。爬蟲的合法性與robot.txt協(xié)議1.爬蟲的合法性當(dāng)使用一個爬蟲爬取一個網(wǎng)站的數(shù)據(jù)時,需要遵守網(wǎng)站所有者針對所有爬蟲所制定的協(xié)議,這便是robot.txt協(xié)議。該協(xié)議通常存放在網(wǎng)站根目錄下,里面規(guī)定了此網(wǎng)站那些內(nèi)容可以被爬蟲獲取,及哪些網(wǎng)頁是不允許爬蟲獲取的。爬蟲的合法性與robot.txt協(xié)議2.robot.txt協(xié)議1認(rèn)識反爬蟲目錄認(rèn)識爬蟲2配置Python爬蟲環(huán)境3小結(jié)4瀏覽器在發(fā)送請求的時候,會附帶一部分瀏覽器及當(dāng)前系統(tǒng)環(huán)境的參數(shù)給服務(wù)器,服務(wù)器會通過User-Agent的值來區(qū)分不同的瀏覽器。網(wǎng)站反爬蟲的目的與手段1.通過User-Agent校驗反爬普通用戶通過瀏覽器訪問網(wǎng)站的速度相對爬蟲而言要慢的多,所以不少網(wǎng)站會利用這一點對訪問頻度設(shè)定一個閾值,如果一個IP單位時間內(nèi)訪問頻度超過了預(yù)設(shè)的閾值,將會對該IP做出訪問限制。通常需要經(jīng)過驗證碼驗證后才能繼續(xù)正常訪問,嚴(yán)重的甚至?xí)乖揑P訪問網(wǎng)站一段時間。網(wǎng)站反爬蟲的目的與手段
2.通過訪問頻度反爬有部分網(wǎng)站不論訪問頻度如何,一定要來訪者輸入驗證碼才能繼續(xù)操作。例如12306網(wǎng)站,不管是登陸還是購票,全部需要驗證驗證碼,與訪問頻度無關(guān)。網(wǎng)站反爬蟲的目的與手段3.通過驗證碼校驗反爬一些社交網(wǎng)站常常會更換網(wǎng)頁結(jié)構(gòu),而爬蟲大部分情況下都需要通過網(wǎng)頁結(jié)構(gòu)來解析需要的數(shù)據(jù),所以這種做法也能起到反爬蟲的作用。在網(wǎng)頁結(jié)構(gòu)變換后,爬蟲往往無法在原本的網(wǎng)頁位置找到原本需要的內(nèi)容。網(wǎng)站反爬蟲的目的與手段4.通過變換網(wǎng)頁結(jié)構(gòu)反爬部分網(wǎng)站需要登錄才能繼續(xù)操作,這部分網(wǎng)站雖然并不是為了反爬蟲才要求登錄操作,但確實起到了反爬蟲的作用。例如微博查看評論就需要登錄賬號。網(wǎng)站反爬蟲的目的與手段5.通過賬號權(quán)限反爬針對之前介紹的常見的反爬蟲手段,可以制定對應(yīng)的爬取策略如下。發(fā)送模擬User-Agent:通過發(fā)送模擬User-Agent來通過檢驗,將要發(fā)送至網(wǎng)站服務(wù)器的請求的User-Agent值偽裝成一般用戶登錄網(wǎng)站時使用的User-Agent值。調(diào)整訪問頻度:通過備用IP測試網(wǎng)站的訪問頻率閾值,然后設(shè)置訪問頻率比閾值略低。這種方法既能保證爬取的穩(wěn)定性,又能使效率又不至于過于低下。通過驗證碼校驗:使用IP代理,更換爬蟲IP;通過算法識別驗證碼;使用cookie繞過驗證碼。應(yīng)對網(wǎng)站結(jié)構(gòu)變化:只爬取一次時,在其網(wǎng)站結(jié)構(gòu)調(diào)整之前,將需要的數(shù)據(jù)全部爬取下來;使用腳本對網(wǎng)站結(jié)構(gòu)進(jìn)行監(jiān)測,結(jié)構(gòu)變化時,發(fā)出告警并及時停止爬蟲。通過賬號權(quán)限限制:通過模擬登錄的方法進(jìn)行規(guī)避,往往也需要通過驗證碼檢驗。通過代理IP規(guī)避:通過代理進(jìn)行IP更換可有效規(guī)避網(wǎng)站檢測,需注意公用IP代理池是網(wǎng)站重點監(jiān)測對象。爬取策略制定1認(rèn)識反爬蟲目錄認(rèn)識爬蟲2配置Python爬蟲環(huán)境3小結(jié)4目前Python有著形形色色的爬蟲相關(guān)庫,按照庫的功能,整理如下。Python爬蟲相關(guān)庫介紹與配置Python爬蟲相關(guān)庫類型庫名簡介通用urllibPython內(nèi)置的HTTP請求庫,提供一系列用于操作URL的功能requests基于urllib,采用Apache2Licensed開源協(xié)議的HTTP庫urllib3提供很多Python標(biāo)準(zhǔn)庫里所沒有的重要特性:線程安全,連接池,客戶端SSL/TLS驗證,文件分部編碼上傳,協(xié)助處理重復(fù)請求和HTTP重定位,支持壓縮編碼,支持HTTP和SOCKS代理,100%測試覆蓋率框架scrapy一個為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架HTML/XML解析器lxmlC語言編寫高效HTML/XML處理庫。支持XPathBeautifulSoup4純Python實現(xiàn)的HTML/XML處理庫,效率相對較低MySQL版本為社區(qū)版本mysql-installer-community-,在64位的Windows系統(tǒng)上,安裝該版本的MySQL具體步驟如下。雙擊打開msi安裝包,勾選接受許可條款,單擊“Next”按鈕后進(jìn)入產(chǎn)品安裝選擇。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置在彈出框中選擇64位版本。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置在下方左側(cè)欄內(nèi)選擇需要安裝的程序,單擊右箭頭移至安裝欄內(nèi)。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置單擊“Next”按鈕后,會檢測系統(tǒng)上是否安裝有相關(guān)依賴的軟件,若沒有安裝,則會出現(xiàn)類似下圖所示的界面。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置單擊“Next”按鈕后,進(jìn)入安裝確認(rèn)步驟,將被安裝的程序會顯示在框內(nèi),單擊“Execute”按鈕將開始安裝過程。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置安裝完成后,還需配置服務(wù),一般用戶類型選擇“DevelopmentMachine”,MySQL的默認(rèn)端口為3306。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置設(shè)置root賬戶的密碼,可添加一個具有普通用戶權(quán)限的MySQL用戶賬戶,也可不添加。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置勾選“ConfigureMySQLServerasaWindowsService”后將以系統(tǒng)用戶運行windows服務(wù),在Windows下MySQL默認(rèn)服務(wù)名為mysql56。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置最后進(jìn)入服務(wù)配置應(yīng)用步驟,單擊“Execute”按鈕將開始執(zhí)行。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置執(zhí)行成功的服務(wù)配置將變?yōu)榫G色的勾選狀態(tài),單擊“Finish”按鈕完成配置過程。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置安裝完成后還需要配置MySQL的環(huán)境變量,步驟如下。打開“環(huán)境變量”對話框。右鍵單擊“我的電腦”圖標(biāo),單擊“高級系統(tǒng)設(shè)置”按鈕,在彈出的“系統(tǒng)屬性”對話框中單擊“環(huán)境變量”按鈕,即可彈出的“環(huán)境變量”對話框。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置設(shè)置MySQL的環(huán)境變量:設(shè)置環(huán)境變量有兩種方法,以下為第一種。新建環(huán)境變量“MYSQL_HOME”,變量值填寫“C:\ProgramFiles\MySQL\MySQLServer5.6”,其中MySQL默認(rèn)安裝在C:\ProgramFiles路徑下。在“Path”變量后面添加“%MYSQL_HOME%\bin”。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置設(shè)置MySQL的環(huán)境變量:第二種設(shè)置環(huán)境變量的方法。直接在“Path”變量中添加“C:\ProgramFiles\MySQL\MySQLServer5.6\bin”。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置使用管理員權(quán)限運行命令提示符,使用“netstartmysql56”命令啟動MySQL服務(wù),使用“netstopmysql56”可關(guān)閉MySQL服務(wù)。配置MySQL數(shù)據(jù)庫1.Windows下MySQL配置Linux版本為CentOS7,使用“yum”命令安裝mysql-community-5.6.40版本的MySQL數(shù)據(jù)庫。切換至root用戶,使用“rpm-qa|grepmysql”命令查看是否已經(jīng)安裝MySQL數(shù)據(jù)庫,沒有安裝將沒有顯示,若原本有安裝也可使用“rpm-emysql”命令進(jìn)行卸載。配置MySQL數(shù)據(jù)庫2.Linux下MySQL配置CentOS7上將MySQL從默認(rèn)軟件列表中移除,用MariaDB來代替,所以必須要去官網(wǎng)上進(jìn)行下載,在官網(wǎng)上找到下載鏈接,用“wget”命令打開。配置MySQL數(shù)據(jù)庫2.Linux下MySQL配置使用“rpm-ivhmysql-community-release-el7-5.noarch.rpm”命令進(jìn)行加載,之后運行“yum-yinstallmysqlmysql-servermysql-devel”命令進(jìn)行安裝。配置MySQL數(shù)據(jù)庫2.Linux下MySQL配置安裝完成后再次運行“yum-yinstallmysqlmysql-servermysql-devel”命令和“rpm-qa|grepmysql”命令進(jìn)行確認(rèn)。配置MySQL數(shù)據(jù)庫2.Linux下MySQL配置使用“servicemysqldstart”命令啟用MySQL服務(wù)。運行“mysql-uroot-p”命令進(jìn)入MySQL客戶端,密碼默認(rèn)為空,可使用“help”或“\h”命令查看幫助。配置MySQL數(shù)據(jù)庫2.Linux下MySQL配置使用64位的3.4版本的MongoDB:mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi,安裝及具體配置過程如下。打開msi安裝包,勾選同意許可條款,單擊“Next”按鈕。配置MongoDB數(shù)據(jù)庫1.Windows下MongoDB配置安裝程序提供兩種安裝模式,完整(Complete)模式會將全部內(nèi)容安裝在C盤路徑且無法更改,若要更改安裝路徑則需要選擇下圖中的定制(Custom)模式。配置MongoDB數(shù)據(jù)庫1.Windows下MongoDB配置在定制模式下可選擇安裝路徑和需要安裝的部件,單擊“Next”按鈕開始安裝過程。配置MongoDB數(shù)據(jù)庫1.Windows下MongoDB配置安裝完成后,需進(jìn)入安裝目錄,建立data和log文件夾分別存放數(shù)據(jù)和log文件,還需創(chuàng)建一個mongo.conf配置文件。配置MongoDB數(shù)據(jù)庫1.Windows下MongoDB配置在logs文件夾內(nèi)創(chuàng)建一個名為mongo.log的日志文件,內(nèi)容留空即可。在系統(tǒng)變量“Path”中添加MongoDB的路徑,如D:\ProgramFiles\MongoDB\Server\3.4\bin。配置MongoDB數(shù)據(jù)庫1.Windows下MongoDB配置還需安裝MongoDB服務(wù),使用管理員權(quán)限打開cmd啟動控制臺,安裝服務(wù)完畢后可使用命令對服務(wù)進(jìn)行開啟和關(guān)閉。配置MongoDB數(shù)據(jù)庫1.Windows下MongoDB配置服務(wù)啟動后,在瀏覽器輸入:27017,若出現(xiàn)下圖所示的字樣,則說明啟動成功。配置MongoDB數(shù)據(jù)庫1.Windows下MongoDB配置在Linux環(huán)境下,選用mongodb-linux-x86_64-rhel70-3.4.11版本的MongoDB數(shù)據(jù)庫,安裝步驟如下。使用“wget”命令從官網(wǎng)獲取MongoDB數(shù)據(jù)庫的tar包。配置MongoDB數(shù)據(jù)庫2.Linux下MongoDB配置將tar包進(jìn)行解壓縮,并復(fù)制到“/usr/local/”路徑下。配置MongoDB數(shù)據(jù)庫2.Linux下Mongo
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年醫(yī)療器械租賃合同模板集錦3篇
- 2024年度高空作業(yè)平臺施工隊用工服務(wù)合同3篇
- 2024年農(nóng)業(yè)科技項目商家投資合同3篇
- 2024年度水泥混凝土配料運輸合作合同3篇
- 第五章 第六章 復(fù)習(xí) 課件
- 第四章 胎兒的發(fā)展課件
- 2024年特大橋日常養(yǎng)護(hù)服務(wù)合同
- 2024年度商鋪租賃與時尚潮流商品管理合同3篇
- 2024年家具廢棄物處理合同3篇
- 內(nèi)蒙古大學(xué)《微機原理及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東省東莞市2023-2024學(xué)年八年級上學(xué)期期末英語試題
- 中小學(xué)人工智能教育的重要性與知識體系梳理
- 地鐵運營公司工務(wù)線路質(zhì)量評定標(biāo)準(zhǔn)
- 感染性休克急診處理課件
- 歷史七年級上學(xué)期期末試卷含答案
- 【基于抖音短視頻的營銷策略分析文獻(xiàn)綜述2800字(論文)】
- 2021-2022學(xué)年度西城區(qū)五年級上冊英語期末考試試題
- 《組織行為學(xué)》(本)形考任務(wù)1-4
- 廣東省廣州市白云區(qū)2022-2023學(xué)年九年級上學(xué)期期末語文試題
- 劇本-進(jìn)入黑夜的漫長旅程
- 化肥購銷合同范本正規(guī)范本(通用版)
評論
0/150
提交評論