国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

以Python的Pyspider為例剖析搜索引擎的網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)方法

2020-02-23 00:28:10
字體:
供稿:網(wǎng)友

在這篇文章中,我們將分析一個網(wǎng)絡(luò)爬蟲。

網(wǎng)絡(luò)爬蟲是一個掃描網(wǎng)絡(luò)內(nèi)容并記錄其有用信息的工具。它能打開一大堆網(wǎng)頁,分析每個頁面的內(nèi)容以便尋找所有感興趣的數(shù)據(jù),并將這些數(shù)據(jù)存儲在一個數(shù)據(jù)庫中,然后對其他網(wǎng)頁進(jìn)行同樣的操作。

如果爬蟲正在分析的網(wǎng)頁中有一些鏈接,那么爬蟲將會根據(jù)這些鏈接分析更多的頁面。

搜索引擎就是基于這樣的原理實(shí)現(xiàn)的。

這篇文章中,我特別選了一個穩(wěn)定的、”年輕”的開源項(xiàng)目pyspider,它是由 binux 編碼實(shí)現(xiàn)的。

注:據(jù)認(rèn)為pyspider持續(xù)監(jiān)控網(wǎng)絡(luò),它假定網(wǎng)頁在一段時間后會發(fā)生變化,因此一段時間后它將會重新訪問相同的網(wǎng)頁。

概述

爬蟲pyspider主要由四個組件組成。包括調(diào)度程序(scheduler),抓取程序(fetcher),內(nèi)容處理程序(processor)以及一個監(jiān)控組件。

調(diào)度程序接受任務(wù)并決定該做什么。這里有幾種可能性,它可以丟棄一個任務(wù)(可能這個特定的網(wǎng)頁剛剛被抓取過了),或者給任務(wù)分配不同的優(yōu)先級。

當(dāng)各個任務(wù)的優(yōu)先級確定之后,它們被傳入抓取程序。它重新抓取網(wǎng)頁。這個過程很復(fù)雜,但邏輯上比較簡單。

當(dāng)網(wǎng)絡(luò)上的資源被抓取下來,內(nèi)容處理程序就負(fù)責(zé)抽取有用的信息。它運(yùn)行一個用戶編寫的Python腳本,這個腳本并不像沙盒一樣被隔離。它的職責(zé)還包括捕獲異常或日志,并適當(dāng)?shù)毓芾硭鼈儭?/p>

最后,爬蟲pyspider中有一個監(jiān)控組件。

爬蟲pyspider提供一個異常強(qiáng)大的網(wǎng)頁界面(web ui),它允許你編輯和調(diào)試你的腳本,管理整個抓取過程,監(jiān)控正在進(jìn)行的任務(wù),并最終輸出結(jié)果。

項(xiàng)目和任務(wù)

在pyspider中,我們有項(xiàng)目和任務(wù)的概念。

一個任務(wù)指的是一個需要從網(wǎng)站檢索并進(jìn)行分析的單獨(dú)頁面。

一個項(xiàng)目指的是一個更大的實(shí)體,它包括爬蟲涉及到的所有頁面,分析網(wǎng)頁所需要的python腳本,以及用于存儲數(shù)據(jù)的數(shù)據(jù)庫等等。

在pyspider中我們可以同時運(yùn)行多個項(xiàng)目。

代碼結(jié)構(gòu)分析

根目錄

在根目錄中可以找到的文件夾有:

data,空文件夾,它是存放由爬蟲所生成的數(shù)據(jù)的地方。 docs,包含該項(xiàng)目文檔,里邊有一些markdown代碼。 pyspider,包含項(xiàng)目實(shí)際的代碼。 test,包含相當(dāng)多的測試代碼。 這里我將重點(diǎn)介紹一些重要的文件: .travis.yml,一個很棒的、連續(xù)性測試的整合。你如何確定你的項(xiàng)目確實(shí)有效?畢竟僅在你自己的帶有固定版本的庫的機(jī)器上進(jìn)行測試是不夠的。 Dockerfile,同樣很棒的工具!如果我想在我的機(jī)器上嘗試一個項(xiàng)目,我只需要運(yùn)行Docker,我不需要手動安裝任何東西,這是一個使開發(fā)者參與到你的項(xiàng)目中的很好的方式。 LICENSE,對于任何開源項(xiàng)目都是必需的,(如果你自己有開源項(xiàng)目的話)不要忘記自己項(xiàng)目中的該文件。 requirements.txt,在Python世界中,該文件用于指明為了運(yùn)行該軟件,需要在你的系統(tǒng)中安裝什么Python包,在任何的Python項(xiàng)目中該文件都是必須的。 run.py,該軟件的主入口點(diǎn)。 setup.py,該文件是一個Python腳本,用于在你的系統(tǒng)中安裝pyspider項(xiàng)目。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡南县| 上蔡县| 宁国市| 酒泉市| 富锦市| 新昌县| 隆德县| 华蓥市| 丰县| 河源市| 波密县| 两当县| 通州区| 肇源县| 绥化市| 迁安市| 炉霍县| 宁远县| 兴山县| 武川县| 精河县| 漳州市| 孙吴县| 樟树市| 富顺县| 仙居县| 林芝县| 礼泉县| 花莲县| 丹东市| 社会| 壶关县| 北宁市| 馆陶县| 长子县| 玛纳斯县| 望江县| 余江县| 上杭县| 定陶县| 梓潼县|