| 企服解答
磁力搜索的原理是爬蟲。磁力鏈接中含有一個(gè)BT種子的唯一身份標(biāo)識(shí),通過這個(gè)標(biāo)識(shí)可以在DHT網(wǎng)絡(luò)中搜索到擁有這個(gè)種子資源的其他peer。Python 爬蟲架構(gòu)主要由五個(gè)部分組成,分別是調(diào)度器、URL管理器、網(wǎng)頁下載器、網(wǎng)頁解析器、應(yīng)用程序(爬取的有價(jià)值數(shù)據(jù))。
磁力搜索是爬蟲嗎
1、調(diào)度器
相當(dāng)于一臺(tái)電腦的CPU,主要負(fù)責(zé)調(diào)度URL管理器、下載器、解析器之間的協(xié)調(diào)工作。
2、URL管理器
包括待爬取的URL地址和已爬取的URL地址,防止重復(fù)抓取URL和循環(huán)抓取URL,實(shí)現(xiàn)URL管理器主要用三種方式,通過內(nèi)存、數(shù)據(jù)庫、緩存數(shù)據(jù)庫來實(shí)現(xiàn)。
3、網(wǎng)頁下載器
通過傳入一個(gè)URL地址來下載網(wǎng)頁,將網(wǎng)頁轉(zhuǎn)換成一個(gè)字符串,網(wǎng)頁下載器有urllib2(Python官方基礎(chǔ)模塊)包括需要登錄、代理、和cookie,requests(第三方包)
4、網(wǎng)頁解析器
將一個(gè)網(wǎng)頁字符串進(jìn)行解析,可以按照我們的要求來提取出我們有用的信息,也可以根據(jù)DOM樹的解析方式來解析。網(wǎng)頁解析器有正則表達(dá)式(直觀,將網(wǎng)頁轉(zhuǎn)成字符串通過模糊匹配的方式來提取有價(jià)值的信息,當(dāng)文檔比較復(fù)雜的時(shí)候,該方法提取數(shù)據(jù)的時(shí)候就會(huì)非常的困難)、html.parser(Python自帶的)、beautifulsoup(第三方插件,可以使用Python自帶的html.parser進(jìn)行解析,也可以使用lxml進(jìn)行解析,相對(duì)于其他幾種來說要強(qiáng)大一些)、lxml(第三方插件,可以解析 xml 和 HTML),html.parser 和 beautifulsoup 以及 lxml 都是以 DOM 樹的方式進(jìn)行解析的。
5、應(yīng)用程序
就是從網(wǎng)頁中提取的有用數(shù)據(jù)組成的一個(gè)應(yīng)用。
| 拓展閱讀
可以將爬蟲總結(jié)為4個(gè)步驟:獲取網(wǎng)頁、提取信息、保存數(shù)據(jù)、自動(dòng)化程序。
1、獲取網(wǎng)頁
爬蟲首先要做的工作就是獲取網(wǎng)頁,也就是獲取網(wǎng)頁的源代碼,源代碼包含了網(wǎng)頁的部分有用信息,所以只要把源代碼獲取下來,就可以從中提取想要的信息。
根據(jù)請(qǐng)求和響應(yīng)的概念,向網(wǎng)站的服務(wù)器發(fā)送一個(gè)請(qǐng)求,返回的響應(yīng)體便是網(wǎng)頁源代碼,因此最關(guān)鍵的部分就是構(gòu)造一個(gè)請(qǐng)求并發(fā)送給服務(wù)器,然后接受到響應(yīng)并將其解析出來。
2、提取信息
獲取網(wǎng)頁源代碼后,接下來就是分析網(wǎng)頁源代碼,從中提取我們想要的數(shù)據(jù),通用的萬能法是采用正則表達(dá)式提取,缺點(diǎn)是比較復(fù)雜和容易出錯(cuò)。另外,由于網(wǎng)頁結(jié)構(gòu)有一定規(guī)則,python還有一些根據(jù)網(wǎng)頁節(jié)點(diǎn)屬性、CSS選擇器或XPath來提取網(wǎng)頁信息的庫,如Beautiful Soup 、pyquery、lxml等。使用這些庫,我們可以高效快速地從中提取網(wǎng)頁信息,如節(jié)點(diǎn)屬性、文本值等。提取信息是爬蟲中非常重要的部分,它可以從雜亂的數(shù)據(jù)中獲取有效的信息,方便我們后續(xù)對(duì)數(shù)據(jù)的處理和分析。
3、保存數(shù)據(jù)
提取信息后,我們一般會(huì)將提取到的數(shù)據(jù)保存到某處以便后續(xù)使用,保存形式多種多樣,簡單的處理可以保存為TXT或JSON文本。也可以保存到數(shù)據(jù)庫,如MySQL和MongoDB等。或者保存至遠(yuǎn)程服務(wù)器。
4、自動(dòng)化程序
簡單來說,就是爬蟲可以在抓取過程中進(jìn)行各種異常處理、錯(cuò)誤重試等操作,持續(xù)高效的自動(dòng)化完成獲取網(wǎng)頁、信息提取、保存數(shù)據(jù)的工作。
[免責(zé)聲明]
文章標(biāo)題: 磁力搜索是爬蟲嗎
文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)溝通。發(fā)送郵件至36dianping@36kr.com,我們會(huì)在3個(gè)工作日內(nèi)處理。