Java 使用SeleniumWebDriver、Jexcelapi和多线程设计webscraper

Java 使用SeleniumWebDriver、Jexcelapi和多线程设计webscraper,java,multithreading,excel,selenium-webdriver,jexcelapi,Java,Multithreading,Excel,Selenium Webdriver,Jexcelapi,我正在努力确保我的设计正确(或至少高效),适合我为客户所做的工作。我为GUI和一些数据提取编写了很多代码,但我担心在一个线程上完成这些代码可能需要太长时间。以下是我想做的: 从txt文件中获取股票符号列表;将其加载到ArrayList中(大约有20只基金) 查找每个基金的各种股票统计数据(约50个统计类别) 将这些统计数据写入电子表格 然后将其加载到主电子表格中(客户希望保留他拥有的相同表格) 因此,大约有70多个值需要查找。我有一个我认为可以高效运行的流程,但不确定它是否尽可能高效。如果有人能

我正在努力确保我的设计正确(或至少高效),适合我为客户所做的工作。我为GUI和一些数据提取编写了很多代码,但我担心在一个线程上完成这些代码可能需要太长时间。以下是我想做的:

  • 从txt文件中获取股票符号列表;将其加载到ArrayList中(大约有20只基金)

  • 查找每个基金的各种股票统计数据(约50个统计类别)

  • 将这些统计数据写入电子表格

  • 然后将其加载到主电子表格中(客户希望保留他拥有的相同表格)

  • 因此,大约有70多个值需要查找。我有一个我认为可以高效运行的流程,但不确定它是否尽可能高效。如果有人能对设计提出任何意见,这将是一个巨大的帮助:

    MainScreen pulls listOfFunds.txt into an ArrayList<String> listOfFunds
    Calls a dataPuller (Using WebDriver)
    dataPuller calls three threads:
    
    Thread1 calls statGroup 1
    Thread2 calls statGroup 2
    Thread3 calls statGroup 3
    
    Main屏幕将listOfFunds.txt拉入ArrayList listOfFunds
    调用dataPuller(使用WebDriver)
    dataPuller调用三个线程:
    Thread1调用statGroup 1
    Thread2调用statGroup 2
    Thread3调用statGroup 3
    
    然后,所有三个线程将找到的所有统计信息加载到最终的ArrayList中

    使用jexcelapi写出所有标签,然后写入并关闭可写工作簿

    主要的问题是:我不知道是否能够将所有三个线程加载到一个ArrayList,而不在其上写入

    如果我能让三个人都写在同一张纸上,那将是一个巨大的提升


    我想主要的问题是,你能把三条线装到同一张纸上吗?或者我将它们加载到ArrayList是正确的?我需要连接通过WebDriver刮取的所有数据,并将其写入excel工作表

    您是否确保将数据(股票符号)分为3部分,这样就不会有多个线程查找同一基金的股票数据?@Abhijeet您是一名stackoverflow士兵!线程将被设置为查找每个基金的不同统计数据,或者我应该以不同的方式划分它吗?顺便说一下,这个项目和webdriver的问题是一样的。问题解决了