Python爬蟲框架Scrapy學習筆記

Python爬蟲框架Scrapy學習筆記

 糖寶Python 2019-03-31 18:15git

 

scrapy.pnggithub

本文主要內容針對Scrapy有初步瞭解的同窗。結合做者的實際項目中遇到的一些問題,匯成本文。shell

以後會寫一些具體的爬蟲demo, 放到 https://github.com/hanguangchao/scrapy_awesome框架

鑑於做者接觸爬蟲不久,水平有限,文章不免出現紕漏,還請各位達人留言指導。scrapy

在學習中有迷茫不知如何學習的朋友小編推薦一個學Python的學習q u n 227  -435-  450能夠來了解一塊兒進步一塊兒學習!免費分享視頻資料分佈式

 

內容提要ide

Scrapy問題記錄工具

Scrapy問題示例代碼學習

Scrapy經常使用代碼片斷spa

Scrapy經常使用設置

Scrapy參考資料

安裝

 

使用

  • 建立一個爬蟲項目

 

  • scrapy shell 工具

能夠利用scrapy shell 分析網頁

經過sel.xpath() 返回一個Selector, 能夠判斷頁面結構是否存在。

 

使用中遇到的一些問題

  • 一個爬蟲項目中,是否支持多個Item?
  • 在一個頁面抓取多個Item?不一樣的Item如何存儲?
  • 爬蟲進入下一級網頁?
  • 在爬蟲中攜帶自定義數據?
  • 重複抓取一個頁面的方法?
  • 分別指定每一個爬蟲的設置?
  • 防止爬蟲被ban?

針對以上問題,下面給出具體的代碼示例

  • 定義能夠定義多個Item

 

  • 具體的爬蟲腳本

 

 

  • 接第一個問題,多個Item,如何存儲?

 

  • Spider 自定義設置

使用custom_settings 該設置是一個dict.當啓動spider時,該設置將會覆蓋項目級的設置. 因爲設置必須在初始化(instantiation)前被更新,因此該屬性 必須定義爲class屬性

 

防止爬蟲被ban

  • 使用user agent池
  • 使用IP池
  • 禁止Cookie
  • 增長下載延遲
  • 分佈式爬蟲
  • 一些常見設置

 

經常使用的Middleware

  • 使用代理IP

 

  • 隨機Agent

 

  • 使用PhantomJS 抓取JS網頁

 

經常使用的Pipeline

過濾重複的Item

 

把Item存儲到MySQL的Pipeline

 

 

把Item保存到JSON文件

 

相關文章
相關標籤/搜索