Python爬蟲:scrapy爬蟲設定隨機訪問時間間隔
scrapy中有一個引數:DOWNLOAD_DELAY
或者 download_delay
可以設定下載延時,不過Spider類被初始化的時候就固定了,爬蟲執行過程中沒發改變。
隨機延時,可以降低被封ip的風險
程式碼示例
random_delay_middleware.py
# -*- coding:utf-8 -*-
import logging
import random
import time
class RandomDelayMiddleware(object):
def __init__(self, delay):
self.delay = delay
@classmethod
def from_crawler(cls, crawler):
delay = crawler.spider.settings.get("RANDOM_DELAY", 10)
if not isinstance(delay, int):
raise ValueError("RANDOM_DELAY need a int")
return cls(delay)
def process_request(self, request, spider):
delay = random.randint(0 , self.delay)
logging.debug("### random delay: %s s ###" % delay)
time.sleep(delay)
使用方式:
custom_settings = {
"RANDOM_DELAY": 3,
"DOWNLOADER_MIDDLEWARES": {
"middlewares.random_delay_middleware.RandomDelayMiddleware": 999,
}
}
說明:
RANDOM_DELAY
比如上面我設定了3秒,那麼隨機延時範圍將是[0, 3]
如果設定了
DOWNLOAD_DELAY
那麼,總的延時應該是兩者之和:
total_delay = DOWNLOAD_DELAY + RANDOM_DELAY
更精確的說,應該是:
DOWNLOAD_DELAY + 0 < total_delay < DOWNLOAD_DELAY + RANDOM_DELAY
相關推薦
Python爬蟲:scrapy爬蟲設定隨機訪問時間間隔
scrapy中有一個引數:DOWNLOAD_DELAY 或者 download_delay 可以設定下載延時,不過Spider類被初始化的時候就固定了,爬蟲執行過程中沒發改變。 隨機延時,可以降低被封
Python爬蟲:scrapy框架Spider類引數設定
Spider設定 引數 說明 示例 name 爬蟲名稱,必須唯一 name = “myspider” handle_httpstatus_list 需要
Python爬蟲:Scrapy除錯執行單個爬蟲
一般執行Scrapy專案的爬蟲是在命令列輸入指令執行的: $ scrapy crawl spider 每次都輸入還是比較麻煩的,偶爾還會敲錯,畢竟能少動就少動 Scrapy提供了一個命令列工具,可以在單個spider檔案中加入以下程式碼: from scrapy im
Python爬蟲:Scrapy的get請求和post請求
scrapy 請求繼承體系 Request |-- FormRequest 通過以下請求測試 GET: https://httpbin.org/get POST: https://httpbin.org/post get請求 方式:通過Request 傳送 im
Python爬蟲:Scrapy的Crawler物件及擴充套件Extensions和訊號Signals
先了解Scrapy中的Crawler物件體系 Crawler物件 settings crawler的配置管理器 set(name, value, priority=‘project’) setdict(values, priority=‘p
Python爬蟲:Scrapy中介軟體middleware和Pipeline
Scrapy提供了可自定義2種中介軟體,1個數據處理器 名稱 作用 使用者設定 資料收集器(Item-Pipeline) 處理item 覆蓋 下載中介軟體(Downloader-M
python爬蟲:scrapy框架xpath和css選擇器語法
Xpath基本語法 一、常用的路徑表示式: 表示式 描述 例項 nodename 選取nodename節點的所有子節點 //div / 從根節點選取
Python爬蟲:Scrapy框架基礎框架結構及騰訊爬取
Scrapy終端是一個互動終端,我們可以在未啟動spider的情況下嘗試及除錯程式碼,也可以用來測試XPath或CSS表示式,檢視他們的工作方式,方便我們爬取的網頁中提取的資料。 如果安裝了 IPython ,Scrapy終端將使用 IPython (替代標準Python終端)。 IPytho
Python爬蟲--timeout設定--防止訪問時間過長造成假死
爬蟲有時候會因為爬去某些網頁速度極慢,影響效能。所有可以設定超時時間。 timeout單位秒 設定超時時間為0,使用try語句。 #coding:utf-8 **urllib2** 超時可以通過
Python爬蟲:學爬蟲前得了解的事兒
編寫 election 檢查 語言 jpg mage 圖片 一個 網頁 這是關於Python的第14篇文章,主要介紹下爬蟲的原理。 提到爬蟲,我們就不得不說起網頁,因為我們編寫的爬蟲實際上是針對網頁進行設計的。解析網頁和抓取這些數據是爬蟲所做的事情。 對於大部分網頁來講,它
python爬蟲—使用scrapy爬蟲框架
pywin32 rip for 鏈接 是把 ror sdn 成功 repl 問題1.使用scrapy框架,使用命令提示符pip命令下載scrapy後,卻無法使用scrapy命令,出現scrapy不是內部或外部命令。也不是可運行的程序 解決:一開始,我是把python安裝在
2017.07.26 Python網絡爬蟲之Scrapy爬蟲框架
返回 scripts http ref select 文本 lang bsp str 1.windows下安裝scrapy:cmd命令行下:cd到python的scripts目錄,然後運行pip install 命令 然後pycharmIDE下就有了Scrapy:
2017.08.04 Python網絡爬蟲之Scrapy爬蟲實戰二 天氣預報
font size 項目 執行 weather html time art show 1.項目準備:網站地址:http://quanzhou.tianqi.com/ 2.創建編輯Scrapy爬蟲: scrapy startproject weather scrapy
2017.08.04 Python網絡爬蟲之Scrapy爬蟲實戰二 天氣預報的數據存儲問題
sql語句 city amd64 ces img href asp encoding primary 1.數據存儲到JSon:程序閱讀一般都是使用更方便的Json或者cvs等待格式,繼續講解Scrapy爬蟲的保存方式,也就是繼續對pipelines.py文件動手腳 (1)創
Python3網路爬蟲:Scrapy入門實戰之爬取動態網頁圖片
Python版本: python3.+ 執行環境: Mac OS IDE: pycharm 一 前言 二 Scrapy相關方法介紹 1 搭建Scrapy專案 2 shell分析 三 網頁分析
Python3網路爬蟲:Scrapy入門之使用ImagesPipline下載圖片
Python版本: python3.+ 執行環境: Mac OS IDE: pycharm 一前言 二初識ImagesPipline ImagesPipline的特性 ImagesPipline的工
Python實戰:網路爬蟲都能幹什麼?
@冰藍 之前在北京買房,誰想房價開始瘋長,鏈家的房價等資料分析只給了一小部分,遠遠不能滿足自己的需求。於是晚上花了幾個小時的時間寫了個爬蟲,爬下了北京所有的小區資訊及北京所有小區的所有歷史成交記錄。 @陳樂群 上次發現Android QQ和iOS QQ可以顯示網路狀態(2G
Python網路爬蟲之scrapy爬蟲的基本使用
Scrapy爬蟲的資料型別: 1. Request類:向網路上提交請求,跟requests庫裡的不是一個型別! 2. Responce類:封裝爬取內容 3. ITEM:spider封裝類
Python MySQL安裝+Scrapy爬蟲將Item寫入mysql資料庫
1. 資料庫安裝 Win7+python+amd64安裝MySQL參考如下網址 http://blog.csdn.net/wklken/article/details/7253245 2. python資料庫操作手冊 http://www.runoob.com/p
第十七節:Scrapy爬蟲框架之Middleware文件詳解
cookies yield 啟動 urn 響應 HERE 返回 === one # -*- coding: utf-8 -*-# 在這裏定義蜘蛛中間件的模型# Define here the models for your spider middleware## See d