首页 > 解决方案 > 如何在 Jupyter Notebook 中同步运行多个功能?

问题描述

我尝试在 Jupiter Notebook 中同时运行多个功能。

我有两个使用 Selenium 并运行无限时间的网络抓取功能,它们总是创建一个更新的 DataFrame。另一个函数合并两个 DataFrame 并进行一些计算。

由于数据总是在变化,并且需要在同一秒内计算来自不同 DataFrame 的计算(两个 DataFrame 每 5 秒更新一次),我想知道如何同时运行所有函数。

由于我的代码主要是 WebScraping,因此我更多地使用它来描述我的目标,并希望使其更具可读性。我已经尝试过使用“多处理”,但它在笔记本中没有做任何事情。

def FirstWebScraping():

  while True:
   time.sleep(5). 
   #getting all data for DataFrame

def SecondtWebScraping():

  while True:
   time.sleep(5). 
   #getting all data for DataFrame


def Calculations():
  while True:
    #merging DataFrame from First- and SecondWebScraping
    #doing calculations
    #running this function infinite and looking for specific values

#Goal
def run_all_at_the_same_time()
  FirstWebScraping()
  SecondWebScraping()
  Calculations()

标签: seleniumjupyter-notebookmultiprocessingcalculation

解决方案


尽管线程没有显示出与多处理相同的好处,但它对我和 selenium 都有效。我在 Calculations 函数的开头放置了一个等待时间,然后它们都被无限循环。

from threading import Thread
if __name__ == '__main__':
    Thread(target = FirstWebScraping).start()
    Thread(target = SecondWebscraping).start()
    Thread(target = Calculations).start()

推荐阅读