一、框架示意圖
Scrapy由 Python 編寫,是一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途廣泛,可以用於數據挖掘、監測和自動化測試。
二、爬蟲人員的主要工作
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 文件中:
terminal:scrapy crawl mininova -o scraped_data.json
3、編寫 item pipeline 將item存儲到數據庫中
注:
1)、Item在Spider中被收集之后,它將會被傳遞到Item Pipeline,一些組件會按照一定的順序執行對Item的處理;
2)每個item pipeline組件(有時稱之為“Item Pipeline”)是實現了簡單方法的Python類。他們接收到Item並通過它執行一些行為,同時也決定此Item是否繼續通過pipeline,或是被丟棄而不再進行處理。
3)item pipeline的一些典型應用:
a)清理HTML數據
b)驗證爬取的數據(檢查item包含某些字段)
c)查重(並丟棄)
4)將爬取結果保存到數據庫中
4、編寫自己的item pipeline
注:每個item pipiline組件是一個獨立的Python類,同時必須實現以下方法:
1)process_item(item, spider)
每個item pipeline組件都需要調用該方法,這個方法必須返回一個 Item (或任何繼承類)對象, 或是拋出 DropItem 異常,被丟棄的item將不會被之后的pipeline組件所處理。
參數:
item (Item 對象) – 被爬取的item
spider (Spider 對象) – 爬取該item的spider
2)open_spider(spider)
當spider被開啟時,這個方法被調用。
參數:spider (Spider 對象) – 被開啟的spider
3)close_spider(spider)
當spider被關閉時,這個方法被調用
參數:spider (Spider 對象) – 被關閉的spider
5、查看提取到的數據
執行結束后,查看 scraped_data.json , 將看到提取到的item:
注 :1)由於 selectors 返回list, 所以值都是以list存儲的(除了 url 是直接賦值之外)。
2) Item Loaders :可以保存單個數據或者對數據執行額外的處理
歡迎關注小婷兒的博客:
csdn:https://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正在成長中,其中還有很多不足之處,隨着學習和工作的深入,會對以往的博客內容逐步改進和完善噠。
重要的事說三遍。。。。。。