scrapy知識點

1.持久化存儲
        - 編碼流程:
            1.數據解析
            2.封裝item類
            3.將解析的數據存儲到實例化好的item對象
            4.提交item
            5.管道接收item而後對item進行io操做
            6.開啓管道
         - 注意事項:
            - 將同一份數據存儲到不一樣的平臺中:
                - 管道文件中一個管道類負責將item存儲到某一個平臺中
                - 配置文件中設定管道類的優先級
                - process_item方法中return item的操做將item傳遞給下一個即將被執行的管道類
    2.全站數據爬取
        - 手動請求的發送:
            - 設定一個通用的url模板
            - 手動i請求的操做寫在哪裏:parse方法
            - yield scrapy.Request(url,callback)
    3.五大核心組件前端

猛擊它瀏覽器

    4.post請求
        - start_requests(self)
        - post請求的手動發送:yield scrapy.FormRequest(url,callback,formdata)
        - COOKIES_ENNABLE = False
    5.日誌等級和請求傳參
        - LOG_LEVEL = 'ERROR'
        - LOG_FILE = 'path'
        - 請求傳參的應用場景:
            - 爬取且解析的數據沒有在同一張頁面
            - 在請求方法中使用meta(字典)參數,該字典會傳遞給回調函數
                - 回調函數接收meta:response.meta['key']服務器

- 下載中間件:
    - 做用:批量攔截請求和響應
    - 攔截請求:
        1.篡改請求頭信息(User-Agent):
        2.設置相關請求對象的代理ip(process_exception中)
- selenium如何做用在scrapy中:
    - 實例化一個瀏覽器對象(一次):spider的構造方法中cookie

 

  - 在scrapy中如何給全部的請求對象儘量多的設置不同的請求載體身份標識
        - UA池,process_request(request)
    - 在scrapy中如何給發生異常的請求設置代理ip
        - ip池,process_exception(request,response,spider):request.meta['proxy'] = 'http://ip:port'
            - 將異常的請求攔截到以後,經過代理ip相關的操做,就能夠將改異常的請求變成非異常的請求,而後必須從新
                對該請求進行從新的請求發送:return request
    - 簡述下載中間件的做用及其最重要三個方法的做用
        - process_request:攔截全部非異常的請求
        - process_response:攔截全部的響應對象
        - process_exception:攔截髮生異常的請求對象,須要對異常的請求對象進行相關處理,讓其變成
            正常的請求對象,而後經過return request 對該請求進行從新發送
    - 簡述scrapy中何時須要使用selenium及其scrapy應用selenium的編碼流程
        - 實例化瀏覽器對象(一次):spider的init方法
        - 須要編寫瀏覽器自動化的操做(中間件的process_response)
        - 關閉瀏覽器(spider的closed方法中進行關閉操做)併發

- 圖片懶加載scrapy

   這是一種前端技術,緩解服務器壓力,給用戶更好的體驗,他只對屏幕內的圖片進行加載,其餘的圖片使用僞屬性隱藏起來,當檢測到屏幕要顯示時,改變爲原生屬性,因此能夠經過僞屬性名獲取圖片地址。ide

- 如何提高scrapy爬取數據的效率:函數

默認scrapy開啓的併發線程爲32個,能夠適當進行增長。在settings配置文件中修改CONCURRENT_REQUESTS = 100值爲100,併發設置成了爲100。post

下降日誌級別:
    在運行scrapy時,會有大量日誌信息的輸出,爲了減小CPU的使用率。能夠設置log輸出信息爲INFO或者ERROR便可。在配置文件中編寫:LOG_LEVEL = ‘INFO’網站

禁止cookie:
    若是不是真的須要cookie,則在scrapy爬取數據時能夠禁止cookie從而減小CPU的使用率,提高爬取效率。在配置文件中編寫:COOKIES_ENABLED = False

禁止重試:
    對失敗的HTTP進行從新請求(重試)會減慢爬取速度,所以能夠禁止重試。在配置文件中編寫:RETRY_ENABLED = False

減小下載超時:
    若是對一個很是慢的連接進行爬取,減小下載超時能夠能讓卡住的連接快速被放棄,從而提高效率。在配置文件中進行編寫:DOWNLOAD_TIMEOUT = 10 超時時間爲10s


- crawlSpider
crawlSpider全站數據爬取
    - crawlSpider就是spider一個子類(派生)
    - crawlSpider具備的機制:
        - 鏈接提取器
        - 規則解析器
    - 建立爬蟲文件: scrapy  genspider  -t  crawl  spiderName  www.xxx.com

               --此指令對比之前的指令多了 "-t crawl",表示建立的爬蟲文件是基於CrawlSpider這個類的,而再也不是Spider這個基類。
    - 深度爬取:

增量式爬蟲:

    - 概念:用來《檢測》網站數據更新的狀況。只會爬取網站中更新出來的新數據。     - 核心:去重  

相關文章
相關標籤/搜索