Scrapy入門 Scrapy是什麼

2021-07-26 06:45:30 字數 2174 閱讀 5060

一、scrapy==蜘蛛

scrapy是我們熟知的蜘蛛爬蟲框架,我們用蜘蛛來獲取網際網路上的各種資訊,然後再對這些資訊進行資料分析處理。所以說,scrapy是學習大資料的入門技能。

scrapy是乙個為了爬取**資料,提取結構性資料而編寫的應用框架。蜘蛛作為網路爬蟲,在網上到處或定向抓取**網頁的html資料。抓取網頁的一般方法是,定義乙個入口頁面,然後一般乙個頁面會有其他頁面的url,於是從當前頁面獲取到這些url加入到爬蟲的抓取佇列中,然後進入到新頁面後再遞迴的進行上述的操作。

二、scrapy的組成

2.1 思維導圖

2.2 基本元件

引擎(scrapy engine),負責管理整個系統,同時各種事件的觸發也由其負責。

排程器(scheduler),排程器。接收spider傳送的request請求,放入佇列中;取出佇列中的request交由**********去請求響應。

蜘蛛(spiders),制訂特定網域名稱或網頁的解析規則。編寫用於分析response並提取item(即獲取到的item)或額外跟進的url的類。 每個spider負責處理乙個特定(或一些)**。

專案管道(item pipeline),負責處理由蜘蛛從網頁中抽取的專案,他的主要任務是清晰、驗證和儲存資料。當頁面被蜘蛛解析後,將被傳送到專案管道,並經過幾個特定的次序處理資料。

蜘蛛中介軟體(spider middlewares),介於scrapy引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛的響應輸入和請求輸出。

排程中介軟體(scheduler middlewares),介於scrapy引擎和排程之間的中介軟體,從scrapy引擎傳送到排程的請求和響應。

三、工作機制

3.1 爬取流程

3.2 資料流程

引擎開啟乙個**(open a domain),找到處理該**的spider並向該spider請求第乙個要爬取的url(s)。

引擎從spider中獲取到第乙個要爬取的url並在排程器(scheduler)以request排程。

引擎向排程器請求下乙個要爬取的url。

spider處理response並返回爬取到的item及(跟進的)新的request給引擎。

引擎將(spider返回的)爬取到的item給item pipeline,將(spider返回的)request給排程器。

3.3 專案流程

使用全域性命令startproject建立專案,在/cgls下建立乙個名為beautiful_album_spider的scrapy專案。

[root@ cgls]# scrapy startproject beautiful_album_spider
使用全域性命令genspider 建立spider,在/cgls/beautiful_album_spider下建立乙個名為xiaohuar的spider項。

[root@ cgls]# scrapy genspider xiaohuar_spider xiaohuar.com
寫spider檔案,制訂特定網域名稱或網頁的解析規則。編寫用於分析response並提取item(即獲取到的item)或額外跟進的url的類。

[root@ cgls]# vi /cgls/beautiful_album_spider/xiaohuar/spider/xiaohuar_spider.py
寫item檔案,定製儲存爬取到的資料的容器。

[root@ cgls]# vi /cgls/beautiful_album_spider/xiaohuar/items.py
寫pipeline檔案,處理由蜘蛛從網頁中抽取的專案,驗證和儲存資料。

[root@ cgls]# vi /cgls/beautiful_album_spider/xiaohuar/pipelines.py
寫setting檔案,配置專案的基本設定。

[root@ cgls]# vi /cgls/beautiful_album_spider/xiaohuar/settings.py
寫start_xiaohuar檔案,便於開啟爬蟲。

[root@ cgls]# vi /cgls/beautiful_album_spider/start_xiaohuar.py
scrapy的安裝,請參考scrapy安裝。

Scrapy入門案例

scrapy是乙個為了爬取 資料,提取結構性資料而編寫的應用框架。其可以應用在資料探勘,資訊處理或儲存歷史資料等一系列的程式中。其最初是為了頁面抓取 更確切來說,網路抓取 所設計的,也可以應用在獲取api所返回的資料 例如 amazon associates web services 或者通用的網路...

scrapy 爬蟲入門(1)

pip install scrapy 就是這麼簡單 scrapy startproject words 會建立乙個words的專案目錄結構 words scrapy.cfg 專案的配置檔案 words 專案 init py items.py 專案的item檔案 pipelines.py 專案的pip...

Scrapy入門程式點評

1,引言 在 scrapy的架構初探 一文,我基於爬蟲開發的經驗對scrapy官網文章作了點評和解讀,事件驅動的非同步處理架構 極強的模組化等是個絕好的框架,接著我細讀了官網的 scrapy at a glance 更加強了我的感受 就是他了 開源python網路爬蟲專案需要乙個爬蟲框架,我不想重 ...