欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python3爬蟲中pyspider框架的簡介-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設、網(wǎng)站建設和四川電信機房托管的網(wǎng)絡公司,有著豐富的建站經(jīng)驗和案例。

這篇文章將為大家詳細講解有關Python3爬蟲中pyspider框架的簡介,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

pyspider 框架介紹

pyspider 是由國人 binux 編寫的強大的網(wǎng)絡爬蟲系統(tǒng),其 GitHub 地址為 https://github.com/binux/pyspider,官方文檔地址為 http://docs.pyspider.org/。

pyspider 帶有強大的 WebUI、腳本編輯器、任務監(jiān)控器、項目管理器以及結果處理器,它支持多種數(shù)據(jù)庫后端、多種消息隊列、JavaScript 渲染頁面的爬取,使用起來非常方便。

1. pyspider 基本功能

我們總結了一下,PySpider 的功能有如下幾點。

提供方便易用的 WebUI 系統(tǒng),可以可視化地編寫和調試爬蟲。

提供爬取進度監(jiān)控、爬取結果查看、爬蟲項目管理等功能。

支持多種后端數(shù)據(jù)庫,如 MySQL、MongoDB、Redis、SQLite、Elasticsearch、PostgreSQL。

支持多種消息隊列,如 RabbitMQ、Beanstalk、Redis、Kombu。

提供優(yōu)先級控制、失敗重試、定時抓取等功能。

對接了 PhantomJS,可以抓取 JavaScript 渲染的頁面。

支持單機和分布式部署,支持 Docker 部署。

如果想要快速方便地實現(xiàn)一個頁面的抓取,使用 pyspider 不失為一個好的選擇。

2. 與 Scrapy 的比較

后面會介紹另外一個爬蟲框架 Scrapy,我們學習完 Scrapy 之后會更容易理解此部分內(nèi)容。我們先了解一下 pyspider 與 Scrapy 的區(qū)別。

pyspider 提供了 WebUI,爬蟲的編寫、調試都是在 WebUI 中進行的,而 Scrapy 原生是不具備這個功能的,采用的是代碼和命令行操作,但可以通過對接 Portia 實現(xiàn)可視化配置。

pyspider 調試非常方便,WebUI 操作便捷直觀,在 Scrapy 中則是使用 parse 命令進行調試,論方便程度不及 pyspider。

pyspider 支持 PhantomJS 來進行 JavaScript 渲染頁面的采集,在 Scrapy 中可以對接 ScrapySplash 組件,需要額外配置。

PySpide r 中內(nèi)置了 PyQuery 作為選擇器,在 Scrapy 中對接了 XPath、CSS 選擇器和正則匹配。

pyspider 的可擴展程度不足,可配制化程度不高,在 Scrapy 中可以通過對接 Middleware、Pipeline、Extension 等組件實現(xiàn)非常強大的功能,模塊之間的耦合程度低,可擴展程度極高。

如果要快速實現(xiàn)一個頁面的抓取,推薦使用 pyspider,開發(fā)更加便捷,如快速抓取某個普通新聞網(wǎng)站的新聞內(nèi)容。如果要應對反爬程度很強、超大規(guī)模的抓取,推薦使用 Scrapy,如抓取封 IP、封賬號、高頻驗證的網(wǎng)站的大規(guī)模數(shù)據(jù)采集。

3. pyspider 的架構

pyspider 的架構主要分為 Scheduler(調度器)、Fetcher(抓取器)、Processer(處理器)三個部分,整個爬取過程受到 Monitor(監(jiān)控器)的監(jiān)控,抓取的結果被 Result Worker(結果處理器)處理,如圖 12-1 所示。

Python3爬蟲中pyspider框架的簡介

圖 12-1 pyspider 架構圖

Scheduler 發(fā)起任務調度,F(xiàn)etcher 負責抓取網(wǎng)頁內(nèi)容,Processer 負責解析網(wǎng)頁內(nèi)容,然后將新生成的 Request 發(fā)給 Scheduler 進行調度,將生成的提取結果輸出保存。

pyspider 的任務執(zhí)行流程的邏輯很清晰,具體過程如下所示。

每個 pyspider 的項目對應一個 Python 腳本,該腳本中定義了一個 Handler 類,它有一個 on_start() 方法。爬取首先調用 on_start() 方法生成最初的抓取任務,然后發(fā)送給 Scheduler 進行調度。

Scheduler 將抓取任務分發(fā)給 Fetcher 進行抓取,F(xiàn)etcher 執(zhí)行并得到響應,隨后將響應發(fā)送給 Processer。

Processer 處理響應并提取出新的 URL 生成新的抓取任務,然后通過消息隊列的方式通知 Schduler 當前抓取任務執(zhí)行情況,并將新生成的抓取任務發(fā)送給 Scheduler。如果生成了新的提取結果,則將其發(fā)送到結果隊列等待 Result Worker 處理。

Scheduler 接收到新的抓取任務,然后查詢數(shù)據(jù)庫,判斷其如果是新的抓取任務或者是需要重試的任務就繼續(xù)進行調度,然后將其發(fā)送回 Fetcher 進行抓取。

不斷重復以上工作,直到所有的任務都執(zhí)行完畢,抓取結束。

抓取結束后,程序會回調 on_finished() 方法,這里可以定義后處理過程。

關于Python3爬蟲中pyspider框架的簡介就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

本文名稱:Python3爬蟲中pyspider框架的簡介-創(chuàng)新互聯(lián)
URL鏈接:http://chinadenli.net/article8/gspop.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設品牌網(wǎng)站建設網(wǎng)站改版虛擬主機響應式網(wǎng)站營銷型網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設