scrapy (三)各部分意義及框架示意圖詳解


一、框架示意圖

ScrapyPython 編寫一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途廣泛,可以用於數據挖掘、監測和自動化測試。

 

 wps1F4.tmp

 

二、爬蟲人員的主要工作

 

1、創建一個Scrapy項目

2、定義提取的Item

3、編寫爬取網站的 spider 並提取 Item

4、編寫 Item Pipeline 來存儲提取到的Item(即數據)

 

三、scrapy基本流程

 

 

 

 

 

 

四、scrapy 框架各部分詳解

1、 Scrapy Items 定義您想抓取的數據

import scrapy

class TorrentItem(scrapy.Item):

    name = scrapy.Field()

2、spiders:編寫提取數據的Spider

1定義初始URL根網址 針對后續鏈接的規則以及從頁面中提取數據的規則(即寫正則或xpath等等)

2執行spider,獲取數據

運行spider來獲取網站的數據,並以JSON格式存入到scraped_data.json 文件中:

terminalscrapy crawl mininova -o scraped_data.json

3、編寫 item pipeline item存儲到數據庫中

注:

1ItemSpider中被收集之后,它將會被傳遞到Item Pipeline,一些組件會按照一定的順序執行對Item的處理

2每個item pipeline組件(有時稱之為“Item Pipeline”)是實現了簡單方法的Python類。他們接收到Item並通過它執行一些行為,同時也決定此Item是否繼續通過pipeline,或是被丟棄而不再進行處理。

3item pipeline的一些典型應用:

a)清理HTML數據

b)驗證爬取的數據(檢查item包含某些字段)

c)查重(並丟棄)

4)將爬取結果保存到數據庫中

4、編寫自己的item pipeline

注:每個item pipiline組件是一個獨立的Python類,同時必須實現以下方法:

1process_item(item, spider)

每個item pipeline組件都需要調用該方法,這個方法必須返回一個 Item (或任何繼承類)對象, 或是拋出 DropItem 異常,被丟棄的item將不會被之后的pipeline組件所處理。

參數:

item (Item 對象) – 被爬取的item

spider (Spider 對象) – 爬取該itemspider

2open_spider(spider)

spider被開啟時,這個方法被調用。

參數:spider (Spider 對象) – 被開啟的spider

3close_spider(spider)

spider被關閉時,這個方法被調用

參數:spider (Spider 對象) – 被關閉的spider

5、查看提取到的數據

執行結束后,查看 scraped_data.json , 將看到提取到的item:

 1由於 selectors 返回list, 所以值都是以list存儲的(除了 url 是直接賦值之外)

2 Item Loaders 可以保存單個數據或者對數據執行額外的處理

 

 

 

歡迎關注小婷兒的博客:

csdnhttps://blog.csdn.net/u010986753

博客園:http://www.cnblogs.com/xxtalhr/

 

有問題請在博客下留言或加QQ群:483766429 或聯系作者本人 QQ 87605025

 

OCP培訓說明連接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA

OCM培訓說明連接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA

 

小婷兒的python正在成長中,其中還有很多不足之處,隨着學習和工作的深入,會對以往的博客內容逐步改進和完善噠。

小婷兒的python正在成長中,其中還有很多不足之處,隨着學習和工作的深入,會對以往的博客內容逐步改進和完善噠。

小婷兒的python正在成長中,其中還有很多不足之處,隨着學習和工作的深入,會對以往的博客內容逐步改進和完善噠。

重要的事說三遍。。。。。。

 

 

    wps206.tmp    wps216.tmp

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM