Scrapy 可以實現使用者動態新增起始URL嗎?

時間 2021-06-17 18:16:52

1樓:darkwings

使用scrapy-redis管理url佇列,能隨時向redis裡面push新的start_urls,可以實現你的需求

使用很簡單 pip install scrapy-redis 安裝

然後修改常規spider檔案

1.引入RedisCrawlSpider

from scrapy_redis.spiders import RedisCrawlSpider

2.將spider類繼承改為RedisCrawlSpider

class BaiduSpider(RedisCrawlSpider):

3.將start_urls39;https://www.baidu.com',

)替換為

4.然後在setting裡面設定redis資料庫的位址等

SCHEDULER = "scrapy_redis.scheduler.Scheduler"

SCHEDULER_PERSIST = True

SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'

REDIS_URL = 'redis://127.0.0.1:6379'

REDIS_HOST = '127.0.0.1'

REDIS_PORT = 6379

DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

5.然後啟動爬蟲,此時已經在使用redis管理url佇列,但是redis裡面還沒有start_urls

使用命令

將start_urls push進redis

然後爬蟲就會開始爬取了哦

中途任意時間可以執行上面的命令將start_urls push進redis 進行爬取

2樓:wilkins rgtv

難道不可以過載Spider的start_requests方法,比如設定乙個動態監測起始URL序列等等嗎,不知道可不可行。

3樓:他看起來像一條狗

我不知道你scrapy使用redis來儲存你的Url佇列沒?如果沒有的話:

這個是scheduler模組對Url佇列的入隊操作,我的想法從這裡作為入口點。

redis類似。

linux小白在實現用c語言模擬實現linux下cat 命令時遇到判斷檔案型別的問題

dm2 為什麼不會報錯呢?因為開啟乙個目錄是不會出錯的也就是說你的open函式執行成功,自然不會執行錯誤處理的邏輯 分割線 花了一點時間,實現了乙個簡陋版本的cat以供參考 include include include define CMP a,op,b strcmp a,b op 0 intsh...

提及 ( Mention)的功能如何實現,用什麼技術?

MY Sun 有現成的庫可以分析一下 At.js.作者為 Chord Luo 其中用到了乙個叫 Caret.js 的庫 同一作者 用於獲取文字框中游標所在的位置. 彬仔 技術難題 當你在 Textarea 任意位置敲 的時候,就會有乙個浮出層,那 的位置怎麼找?利用乙個隱藏的層來模擬 Textare...

strlen的實現用不用加斷言(assert)?

黃亮anthony 換個角度來解釋這個問題,寫應用程式和寫庫,其實並不是一回事。很多庫用到了一些黑暗科技,比如位元組對齊,大部分應用程式不用考慮。反之也是一樣,很多應用程式需要考慮的問題,比如這種assert,在庫里其實不是問題 非空指標應由使用者檢查 或者不能使用 不能主動讓程式崩潰 dyntkj...