爬蟲框架 scrapy 專案檔案詳解

2021-09-24 03:34:59 字數 3818 閱讀 6454

#==>第一部分:基本配置<===

#1、專案名稱,預設的user_agent由它來構成,也作為日誌記錄的日誌名

bot_name =

'amazon'

#2、爬蟲應用路徑

spider_modules =

['amazon.spiders'

]newspider_module =

'amazon.spiders'

#3、客戶端user-agent請求頭

user_agent =

'amazon (+'

#4、是否遵循爬蟲協議

# obey robots.txt rules

robotstxt_obey =

false

#5、是否支援cookie,cookiejar進行操作cookie,預設開啟

#cookies_enabled = false

#6、telnet用於檢視當前爬蟲的資訊,操作爬蟲等...使用telnet ip port ,然後通過命令操作

#telnetconsole_enabled = false

#telnetconsole_host = '127.0.0.1'

#telnetconsole_port = [6023,]

#7、scrapy傳送http請求預設使用的請求頭

#default_request_headers =

#===>第二部分:併發與延遲<===

#concurrent_requests = 32

#2、每個網域名稱能夠被執行的最大併發請求數目,預設值8

#concurrent_requests_per_domain = 16

#3、能夠被單個ip處理的併發請求數,預設值0,代表無限制,需要注意兩點

#i、如果不為零,那concurrent_requests_per_domain將被忽略,即併發數的限制是按照每個ip來計算,而不是每個網域名稱

#concurrent_requests_per_ip = 16

#4、如果沒有開啟智慧型限速,這個值就代表乙個規定死的值,代表對同一**延遲請求的秒數

#download_delay = 3

#===>第三部分:智慧型限速/自動節流:autothrottle extension<===

#一:介紹

from scrapy.contrib.throttle import autothrottle #

設定目標:

#二:如何實現?

#三:限速演算法

#4、沒有達到200個response則不允許降低延遲

#四:配置使用

#開啟true,預設false

autothrottle_enabled =

true

#起始的延遲

autothrottle_start_delay =

5#最小延遲

download_delay =

3#最大延遲

autothrottle_max_delay =

10#每秒併發請求數的平均值,不能高於 concurrent_requests_per_domain或concurrent_requests_per_ip,調高了則吞吐量增大**目標站點,調低了則對目標站點更加」禮貌「

#每個特定的時間點,scrapy併發請求的數目都可能高於或低於該值,這是爬蟲檢視達到的建議值而不是硬限制

autothrottle_target_concurrency =

16.0

#除錯autothrottle_debug =

true

concurrent_requests_per_domain =

16concurrent_requests_per_ip =

16#===>第四部分:爬取深度與爬取方式<===

#1、爬蟲允許的最大深度,可以通過meta檢視當前深度;0表示無深度

# depth_limit = 3

#2、爬取時,0表示深度優先lifo(預設);1表示廣度優先fifo

# 後進先出,深度優先

# depth_priority = 0

# scheduler_disk_queue = 'scrapy.squeue.picklelifodiskqueue'

# scheduler_memory_queue = 'scrapy.squeue.lifomemoryqueue'

# 先進先出,廣度優先

# depth_priority = 1

# scheduler_disk_queue = 'scrapy.squeue.picklefifodiskqueue'

# scheduler_memory_queue = 'scrapy.squeue.fifomemoryqueue'

#3、排程器佇列

# scheduler = 'scrapy.core.scheduler.scheduler'

# from scrapy.core.scheduler import scheduler

#4、訪問url去重

# dupefilter_class = 'step8_king.duplication.repeaturl'

#===>第五部分:中介軟體、pipelines、擴充套件<===

#1、enable or disable spider middlewares

# see

#spider_middlewares =

#2、enable or disable ********** middlewares

# see

**********_middlewares =

#3、enable or disable extensions

# see

#extensions =

#4、configure item pipelines

# see

item_pipelines =

#===>第六部分:快取<===

"""1. 啟用快取

目的用於將已經傳送的請求或相應快取下來,以便以後使用

"""# 是否啟用快取策略

# 快取策略:所有請求均快取,下次在請求直接訪問原來的快取即可

# 快取策略:根據http響應頭:cache-control、last-modified 等進行快取的策略

# 快取超時時間

# 快取儲存路徑

# 快取忽略的http狀態碼

# 快取儲存的外掛程式

基於Scrapy框架編寫爬蟲專案

知識點 2種安裝模組的方式。以下兩種方式可以安裝絕大部分模組,網路安裝 指直接在控制台 pip install xx 第6條,配置過程 1.複製 f 程式設計 python lib site packages pywin32 system32 下的兩個.dll檔案 2.貼上到 c windows s...

爬蟲 建立scrapy框架的專案

進入命令管理器 通過命令scrapy startproject spider3 進入spider3專案中 執行scrapy genspider university qianmu.org scrapy genspider 爬蟲的名字name 爬蟲的網域名稱 通過pycharm軟體匯入此專案 scra...

scrapy爬蟲框架

作者經過幾周的python爬蟲實踐之後,深入學習了一下scrapy這個爬蟲框架,現將一些基本知識和 總結整理一下,以備後查。2.scrapy的命令列使用 這部分網上很多部落格都有總結,不需要背,理解會用主要的命令 startproject crawl fetch list genspider.即可,...