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

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

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

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

假設(shè)我有三臺(tái)爬蟲(chóng)服務(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ù)。

然后我們通過(guò)命令行或者代碼(如下)就能發(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ù)跳過(guò)插入
    if datas:
      insert_seeds(datas)
    set_seed_other_crawled(uid)
@app.task(ignore_result=True)
def crawl_person_infos(uid):
  ""
  根據(jù)用戶i來(lái)爬取用戶相關(guān)資料和用戶的關(guān)注數(shù)和粉絲數(shù)(由于微博服務(wù)端限制,默認(rèn)爬取前五頁(yè),企業(yè)號(hào)的關(guān)注和粉絲也不能查看)
  :param uid: 用戶id
  :return:
  """
  if not uid:
    return
  # 由于與別的任務(wù)共享數(shù)據(jù)表,所以需要先判斷數(shù)據(jù)庫(kù)是否有該用戶信息,再進(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')

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

到此這篇關(guān)于python爬蟲(chóng)分布式獲取數(shù)據(jù)的實(shí)例方法的文章就介紹到這了,更多相關(guān)python爬蟲(chóng)如何分布式獲取數(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功能示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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é)趕快來(lái)看一看吧,對(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使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • Python中的pass語(yǔ)句使用方法講解

    Python中的pass語(yǔ)句使用方法講解

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

    pandas df.sample()的使用

    本文主要介紹了pandas df.sample()的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 使用python opencv對(duì)目錄下圖片進(jìn)行去重的方法

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

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

最新評(píng)論

遵义县| 陇南市| 淅川县| 杂多县| 金昌市| 靖宇县| 海林市| 合江县| 周至县| 综艺| 钟祥市| 自治县| 库车县| 简阳市| 汉寿县| 苏尼特右旗| 金平| 迭部县| 郁南县| 咸宁市| 密云县| 天台县| 资兴市| 荆州市| 黄陵县| 桑日县| 崇阳县| 通城县| 金坛市| 天长市| 海安县| 拉萨市| 弥勒县| 新宁县| 绵竹市| 嘉定区| 凤山市| 鄯善县| 金湖县| 宣城市| 巫溪县|