• <th id="bb20k"></th>
    1. <th id="bb20k"></th>
      1. <th id="bb20k"></th>
        <progress id="bb20k"></progress>

        您的位置:新聞資訊 >文章內容
        怎么加快爬蟲速度?優化Python爬蟲的速度
        來源:簡書爬蟲小哥 作者:admin 時間:2018-11-22 15:57:26

            大數據的應用,許多企業都有數據采集的需求,在抓取數據時常常會遭遇各種限制,采集時間越長問題越多,關鍵是提高采集速度,那么怎么加快爬蟲速度?

            Python應該算是大家非常喜歡的爬蟲語言,而scrapy框架應該算是爬蟲模塊、框架中的佼佼者,今天我們自定義settings.py文件。

         

            scrapy項目結構

            我們自定義settings.py文件的部分設置,今天修改瀏覽器頭。理由:

            1、簡單防止反爬蟲(豆瓣....)

            2、加快爬取速度

            3、不用每次都是修改項目文件的settings.py 

            這里解釋幾個參數:

            ROBOTSTXT_OBEY = True-----------是否遵守robots.txt

            CONCURRENT_REQUESTS = 16-----------開啟線程數量,默認16

            AUTOTHROTTLE_START_DELAY = 3-----------開始下載時限速并延遲時間

            AUTOTHROTTLE_MAX_DELAY = 60-----------高并發請求時最大延遲時間

            最底下的幾個:是否啟用在本地緩存,如果開啟會優先讀取本地緩存,從而加快爬取速度,視情況而定

            HTTPCACHE_ENABLED = True

            HTTPCACHE_EXPIRATION_SECS = 0

            HTTPCACHE_DIR = 'httpcache'

            HTTPCACHE_IGNORE_HTTP_CODES = []

            HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'

            以上幾個可以視項目需要開啟,但是有兩個參數最好每次都開啟,而每次都是項目文件手動開啟不免有些麻煩,最好是項目創建后就自動開啟

            #DEFAULT_REQUEST_HEADERS = {

            #   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

            #   'Accept-Language': 'en',

            這個是瀏覽器請求頭,很多網站都會檢查客戶端的headers,比如豆瓣就是每一個請求都檢查headers的user_agent,否則只會返回403,可以開啟

            #USER_AGENT = 'Chirco (+http://www.yourdomain.com)'

            這個是至關重要的,大部分服務器在請求快了會首先檢查User_Agent,而scrapy默認的瀏覽器頭是scrapy1.1 我們需要開啟并且修改成瀏覽器頭,如:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1

            但是最好是這個USER-AGENT會隨機自動更換最好了。


            首先我們可以收集幾個瀏覽器頭,比如:

        怎么加快爬蟲速度?優化Python爬蟲的速度

            瀏覽器頭列表

            用隨機函數random自動更換頭,找到scrapy根目錄下:X:\Python35\Lib\site-packages\scrapy\templates\project\module

        修改的就是這個settings.py.tmpl模板文件

        每次執行scrapy startproject name 都會在這個基模版下創建settings.py文件

        怎么加快爬蟲速度

        scrapy模板文件settings.py.tmpl

        執行scrapy startproject name后看到settings.py生效了


        怎么加快爬蟲速度,優化Python爬蟲的速度

        修改模板后的settings.py文件

        現在我們來檢查一下我們剛剛的操作是否生效,這里簡單創建一個scrapy


        優化Python爬蟲的速度

        執行6次,每次打印request的頭


        爬蟲速度

        執行結果

        執行結果發現每次的瀏覽器頭都是不一樣的


        相關文章內容簡介
        在線咨詢
        微信公眾號

        微信公眾號

        回到頂部
        国产欧美 一区,国产一本大道香蕉AV,国产亚洲卡通另类图片,国产高清AV在线