最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python爬蟲分布式獲取數(shù)據(jù)的實(shí)例方法

 更新時(shí)間:2020年11月26日 14:51:37   作者:小妮淺淺  
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python爬蟲分布式獲取數(shù)據(jù)的實(shí)例方法,有興趣的朋友們可以參考下。

在我們進(jìn)行衛(wèi)生大掃除的時(shí)候,因?yàn)楣ぷ魅蝿?wù)較多,所以我們會(huì)進(jìn)行分工,每個(gè)人負(fù)責(zé)不同的打掃項(xiàng)目。同樣分工合作的理念,在python分布式爬蟲中也得到了應(yīng)用。我們需要給不同的爬蟲分配指令,讓它們?nèi)シ诸^行動(dòng)獲取同一個(gè)網(wǎng)站的數(shù)據(jù)。那么這些爬蟲是怎么分工搜集數(shù)據(jù)的呢?感興趣的小伙伴,我們可以通過下面的示例進(jìn)行解惑。

假設(shè)我有三臺(tái)爬蟲服務(wù)器A、B和C。我想讓我所有的賬號(hào)登錄任務(wù)分散到三臺(tái)服務(wù)器、讓用戶抓取在A和B上執(zhí)行,讓粉絲和關(guān)注抓取在C上執(zhí)行,那么啟動(dòng)A、B、C三個(gè)服務(wù)器的celery worker的命令就分別是

celery -A tasks.workers -Q login_queue,user_crawler worker -l info -c 1 # A服務(wù)器和B服務(wù)器啟動(dòng)worker的命令,它們只會(huì)執(zhí)行登錄和用戶信息抓取任務(wù)。

celery -A tasks.workers -Q login_queue,fans_followers worker -l info -c 1 # C服務(wù)器啟動(dòng)worker的命令,它只會(huì)執(zhí)行登錄、粉絲和關(guān)注抓取任務(wù)。

然后我們通過命令行或者代碼(如下)就能發(fā)送所有任務(wù)給各個(gè)節(jié)點(diǎn)執(zhí)行了

# coding:utf-8
from tasks.workers import app
from page_get import user as user_get
from db.seed_ids import get_seed_ids, get_seed_by_id, insert_seeds, set_seed_other_crawled
@app.task(ignore_result=True)
def crawl_follower_fans(uid):
  seed = get_seed_by_id(uid)
  if seed.other_crawled == 0:
    rs = user_get.get_fans_or_followers_ids(uid, 1

    rs.extend(user_get.get_fans_or_followers_ids(uid, 2))
    datas = set(rs)
    # 重復(fù)數(shù)據(jù)跳過插入
    if datas:
      insert_seeds(datas)
    set_seed_other_crawled(uid)
@app.task(ignore_result=True)
def crawl_person_infos(uid):
  ""
  根據(jù)用戶i來爬取用戶相關(guān)資料和用戶的關(guān)注數(shù)和粉絲數(shù)(由于微博服務(wù)端限制,默認(rèn)爬取前五頁,企業(yè)號(hào)的關(guān)注和粉絲也不能查看)
  :param uid: 用戶id
  :return:
  """
  if not uid:
    return
  # 由于與別的任務(wù)共享數(shù)據(jù)表,所以需要先判斷數(shù)據(jù)庫是否有該用戶信息,再進(jìn)行抓取
  user = user_get.get_profile(uid)
  # 不抓取企業(yè)號(hào)
  if user.verify_type == 2:
    set_seed_other_crawled(uid)
    return
  app.send_task('tasks.user.crawl_follower_fans', args=(uid,), queue='fans_followers',
         routing_key='for_fans_followers')
@app.task(ignore_result=True)
def excute_user_task():
  seeds = get_seed_ids()
  if seeds:
    for seed in seeds:
      # 在send_task的時(shí)候指定任務(wù)隊(duì)列
      app.send_task('tasks.user.crawl_person_infos', args=(seed.uid,), queue='user_crawler',
             routing_key='for_user_info')

分布式爬蟲架構(gòu)圖

到此這篇關(guān)于python爬蟲分布式獲取數(shù)據(jù)的實(shí)例方法的文章就介紹到這了,更多相關(guān)python爬蟲如何分布式獲取數(shù)據(jù)?內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django admin后臺(tái)添加導(dǎo)出excel功能示例代碼

    django admin后臺(tái)添加導(dǎo)出excel功能示例代碼

    這篇文章主要介紹了django admin 后臺(tái)添加導(dǎo)出excel功能示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • Python中的Django基本命令實(shí)例詳解

    Python中的Django基本命令實(shí)例詳解

    這篇文章主要介紹了Python之Django基本命令 ,需要的朋友可以參考下
    2018-07-07
  • Pandas按周/月/年統(tǒng)計(jì)數(shù)據(jù)介紹

    Pandas按周/月/年統(tǒng)計(jì)數(shù)據(jù)介紹

    大家好,本篇文章主要講的是Pandas按周/月/年統(tǒng)計(jì)數(shù)據(jù)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

    pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

    這篇文章主要介紹了pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python中的getter與setter及deleter使用示例講解

    Python中的getter與setter及deleter使用示例講解

    這篇文章主要介紹了Python中的getter與setter及deleter使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • Python中的pass語句使用方法講解

    Python中的pass語句使用方法講解

    這篇文章主要介紹了Python中的pass語句使用方法講解,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • pandas df.sample()的使用

    pandas df.sample()的使用

    本文主要介紹了pandas df.sample()的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python os.system執(zhí)行cmd指令代碼詳解

    python os.system執(zhí)行cmd指令代碼詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python os.system執(zhí)行cmd指令代碼詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-10-10
  • Python實(shí)現(xiàn)人臉識(shí)別的詳細(xì)圖文教程

    Python實(shí)現(xiàn)人臉識(shí)別的詳細(xì)圖文教程

    人臉識(shí)別是人工智能的一個(gè)重要應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)人臉識(shí)別的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 使用python opencv對(duì)目錄下圖片進(jìn)行去重的方法

    使用python opencv對(duì)目錄下圖片進(jìn)行去重的方法

    今天小編就為大家分享一篇使用python opencv對(duì)目錄下圖片進(jìn)行去重的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論

通化市| 北票市| 榕江县| 奇台县| 南川市| 通海县| 襄垣县| 囊谦县| 吉安市| 屯留县| 射阳县| 门源| 南安市| 云浮市| 武义县| 通渭县| 泾源县| 西青区| 文成县| 荥阳市| 平阳县| 巍山| 东乡族自治县| 鸡东县| 清水河县| 通州市| 民乐县| 旬邑县| 江阴市| 张掖市| 淮北市| 安国市| 永善县| 杭锦旗| 梁平县| 中宁县| 定兴县| 开平市| 浦江县| 来宾市| 张北县|