Я пишу программу для извлечения информации из Интернета и сохранения ее в списке Python. Я использую многопроцессорный метод для извлечения информации и испытываю проблемы с сохранением списка вывода для дальнейшей обработки. Это мой код:
import multiprocessing
def web_scrape1():
#some codes to scrape the web output 3 lists
global sub_list1a, sub_list2a, sub_list3a
sub_list1a.append(scrape1)
sub_list2a.append(scrape2)
sub_list3a.append(scrape3)
def web_scrape2():
#some codes to scrape the web output 3 lists
global sub_list1b, sub_list2b, sub_list3b
sub_list1b.append(scrape1)
sub_list2b.append(scrape2)
sub_list3b.append(scrape3)
def master_scraper():
ws1 = multiprocessing.Process(target=web_scrape1)
ws2 = multiprocessing.Process(target=web_scrape2)
ws1.start()
ws2.start()
ws1.join()
ws2.join()
global master_list1, master_list2, master_list3
master_list1 = sub_list1a + sub_list1b
master_list2 = sub_list2a + sub_list2b
master_list3 = sub_list3a + sub_list3b
def postprocessing():
#some codes to process the lists
print(master_list1) # Output []
print(master_list2) # Output []
print(master_list3) # Output []
def main():
master_scraper()
postprocessing()
if __name__ == '__main__':
multiprocessing.freeze_support()
main()
вывод для приведенного выше кода просто:
[]
[]
[]
Я попытался назначить весь список общей памяти, используя что-то вроде этого multiprocessing.Array('b', sub_list1a)
внутри функции web_scape1()
, master_scraper()
и main()
, но список все еще возвращается как []
.
Надеюсь получить помощь здесь.