日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6 scrapy框架之分布式操作

發布時間:2024/9/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6 scrapy框架之分布式操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分布式爬蟲

一.redis簡單回顧

  1.啟動redis:

    mac/linux:?? redis-server redis.conf

    windows: redis-server.exe redis-windows.conf

  2.對redis配置文件進行配置:

    - 注釋該行:bind 127.0.0.1,表示可以讓其他ip訪問redis

    - 將yes該為no:protected-mode no,表示可以讓其他ip操作redis

二.scrapy基于redis的數據持久化操作流程

  1.安裝scrapy-redis組件:

    - pip install scrapy-redis

    - scrapy-redis是基于scrapy框架開發出的一套組件,其作用就是可以讓scrapy實現分布式爬蟲。

  2.編寫爬蟲文件:

    - 同之前scrapy中基于Spider或者CrawlSpider的編寫方式一致。

  3.編寫管道文件:

    - 在scrapy-redis組件中已經幫助我們封裝好了一個專門用于連接存儲redis數據庫的管道(RedisPipeline),因此我們直接使用即可,無需自己編寫管道文件。

  4.編寫配置文件:

    - 在settings.py中開啟管道,且指定使用scrapy-redis中封裝好的管道。

ITEM_PIPELINES = {'scrapy_redis.pipelines.RedisPipeline': 400 }

- 該管道默認會連接且將數據存儲到本機的redis服務中,如果想要連接存儲到其他redis服務中需要在settings.py中進行如下配置:

REDIS_HOST = 'redis服務的ip地址' REDIS_PORT = 6379 REDIS_ENCODING = ‘utf-8’ REDIS_PARAMS = {‘password’:’123456’}

三.redis分布式部署

  1.scrapy框架是否可以自己實現分布式?

    - 不可以。原因有二。

      其一:因為多臺機器上部署的scrapy會各自擁有各自的調度器,這樣就使得多臺機器無法分配start_urls列表中的url。(多臺機器無法共享同一個調度器)

      其二:多臺機器爬取到的數據無法通過同一個管道對數據進行統一的數據持久出存儲。(多臺機器無法共享同一個管道)

  2.redis實現分布式基本流程:

    - 使用基于scrapy-redis組件中的爬蟲文件。

import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule from movieproject.items import MovieprojectItem #導入scrapy-redis中的模塊 from scrapy_redis.spiders import RedisCrawlSpiderclass NnSpider(RedisCrawlSpider):name = 'nn'allowed_domains = ['www.id97.com']#redis_key表示調度器中的隊列(將要爬取的頁面數據對應的url都需要放置到調度器隊列中)redis_key = 'nnspider:start_urls'# 根據規則提取所有的頁碼鏈接page_link = LinkExtractor(allow=r'/movie/\?page=\d')detail_link = LinkExtractor(restrict_xpaths='//div[contains(@class,"col-xs-1-5")]/div/a')# detail_link = LinkExtractor(allow=r'/movie/\d+\.html$')# follow : 是否跟進rules = (# 所有的頁碼不用處理,跟進即可Rule(page_link, follow=True),# 所有的詳情頁處理,不用跟進Rule(detail_link, callback='parse_item', follow=False),)def parse_item(self, response):# 創建一個item對象item = MovieprojectItem()# 電影海報item['post'] = response.xpath('//a[@class="movie-post"]/img/@src').extract_first()# 電影名字item['name'] = response.xpath('//h1').xpath('string(.)').extract_first()yield item viewfrom scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule from redisPro.items import RedisproItemfrom scrapy_redis.spiders import RedisCrawlSpiderclass QiubaiSpider(RedisCrawlSpider):name = 'qiubai'#allowed_domains = ['https://www.qiushibaike.com/pic/']#start_urls = ['https://www.qiushibaike.com/pic/']#調度器隊列的名稱redis_key = 'qiubaispider' #表示跟start_urls含義是一樣,redis數據庫里面的值link = LinkExtractor(allow=r'/pic/page/\d+')rules = (Rule(link, callback='parse_item', follow=True),)def parse_item(self, response):div_list = response.xpath('//div[@id="content-left"]/div')for div in div_list:img_url = "https:"+div.xpath('.//div[@class="thumb"]/a/img/@src').extract_first()item = RedisproItem()item['img_url'] = img_urlyield item

- 使用scrapy-redis組件中封裝好的調度器,將所有的url存儲到該指定的調度器中,從而實現了多臺機器的調度器共享。

# 使用scrapy-redis組件的去重隊列 DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" # 使用scrapy-redis組件自己的調度器 SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 是否允許暫停 SCHEDULER_PERSIST = True

 - 使用scrapy-redis組件中封裝好的管道,將每臺機器爬取到的數據存儲通過該管道存儲到redis數據庫中,從而實現了多臺機器的管道共享。

ITEM_PIPELINES = {'scrapy_redis.pipelines.RedisPipeline': 400, }

- 執行:scrapy runspider xxx.py,然后向調度器隊列中傳入起始url:lpush nnspider:start_urls http://www.xxx.com/

總結

以上是生活随笔為你收集整理的6 scrapy框架之分布式操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av国产一区 | 一区二区三区四区免费观看 | 美女的诞生免费观看在线高清 | 动漫裸体无遮挡 | 日本成人中文字幕 | 亚洲 欧美 激情 另类 | 精品啪啪 | 久久青青 | 麻豆美女视频 | 美女一级片 | 国产91网 | 国产亚洲一区二区三区 | 一区二区在线视频免费观看 | 91精品国产综合久久精品图片 | 亚洲欧美精品午睡沙发 | 国语播放老妇呻吟对白 | 已满18岁免费观看电视连续剧 | 国产51视频 | 欧美日在线观看 | 男人天堂2014| 成人传媒| 男人天堂视频在线观看 | 色小说在线 | 在线亚洲区 | 欧美成人一级视频 | 一区二区三区不卡视频在线观看 | 尤物av无码色av无码 | 亚洲福利专区 | 麻豆av在线看 | 白丝久久 | 超碰97久久 | 好吊妞这里只有精品 | 中文字幕第31页 | 欧美精品大片 | 亚洲激情视频小说 | 超碰美女 | 亚洲第一二区 | 日韩av一区在线 | 成人午夜激情网 | 色欲久久久天天天综合网 | 黄色一级免费 | 精品自拍偷拍视频 | 国产视频第一页 | 天天色一色 | 成人小视频在线免费观看 | a视频免费看 | 国产91专区| 精品一区二区久久久 | 91在线观看免费高清 | 亚洲中文字幕无码专区 | 亚洲精品一区在线观看 | 麻豆成人91精品二区三区 | 手机av在线看 | 尤物毛片 | 亚洲国产日本 | 亚洲乱仑 | 天天操天天干天天干 | 国产香蕉在线视频 | r级无码视频在线观看 | 中文在线免费视频 | 亚洲欧美另类视频 | 无码人妻精品丰满熟人区 | 国产青青草视频 | 草草影院最新网址 | 热久久这里只有精品 | 91亚洲精品国偷拍自产在线观看 | 欧美精品国产一区二区 | 女人扒开屁股让男人捅 | 日韩精品一区二区三区 | 法国空姐电影在线观看 | 日本人性爱视频 | 国产欧美精品一区二区在线播放 | 狠狠久久婷婷 | 国产精品自拍第一页 | 9·1·黄·色·视·频 | 岛国av免费在线观看 | 免费的性爱视频 | 久久精品视频日本 | 欧美熟妇交换久久久久久分类 | 成人区精品一区二区婷婷 | 久久午夜剧场 | 亚洲最大福利网站 | 欧美无砖区| 人妖被c到高潮欧美gay | 国产毛片毛片毛片毛片 | 免费毛片一区二区三区 | 日日操日日摸 | 国产xxxx在线观看 | 第一福利av| 中文字幕人妻一区 | 在线观看羞羞漫画 | 成人做爰www看视频软件 | 免费观看黄色的网站 | 亚洲最新视频 | 国产一级片免费视频 | 黄色三级在线 | 亚洲h网站| 91久久极品少妇xxxxⅹ软件 | 久久久久成人精品 |