Issue
Webscraping не происходит параллельно с использованием python multiprocessing
библиотеки
Общая структура кода
import requests
from bs4 import BeautifulSoup
import xlwt
from xlwt import Workbook
def webscrape(URL):
#do some scraping
return XYZ
def func(start_id, end_id, sheet, wb):
URL = 'https://www.thisisaURL?page_id='
excel_row = 1
for i in range(start_id, end_id):
xyz = webscrape(URL+str(i))
sheet.write(excel_row, 0, xyz)
excel_row += 1
wb.save(str(start_id) + '.xls')
def init_sheet(sheet):
sheet.write(0,0,'WebscrapingValue')
def main():
wb1 = Workbook()
wb2 = Workbook()
wb3 = Workbook()
wb4 = Workbook()
wb5 = Workbook()
wb6 = Workbook()
init_sheet(sheet1)
init_sheet(sheet2)
init_sheet(sheet3)
init_sheet(sheet4)
init_sheet(sheet5)
init_sheet(sheet6)
p1 = Process(target=func,args=(start_id[0], end_id[0], sheet1,wb1))
p1.start()
p2 = Process(target=func,args=(start_id[1], end_id[1], sheet2,wb2))
p2.start()
p3 = Process(target=func,args=(start_id[2], end_id[2], sheet3,wb3))
p3.start()
p4 = Process(target=func,args=(start_id[3], end_id[3], sheet4,wb4))
p4.start()
p5 = Process(target=func,args=(start_id[4], end_id[4], sheet5,wb5))
p5.start()
p6 = Process(target=func,args=(start_id[5], end_id[5], sheet6,wb6))
p6.start()
p1.join()
p2.join()
p3.join()
p4.join()
p5.join()
p6.join()
Надеемся, что эта структура помещает некоторые вещи в перспектива.
То, что я хочу
Это для того, чтобы эти файлы Excel генерировались параллельно и заполнялись
Что происходит
Только первый файл когда-либо создан, и ни один из других не создан или сохранен (похоже, что он выполняется параллельно, но он застрял)
Что я думаю, что это
Я исследовал стек и многочисленные посты, и это похоже проблема с моей requests
библиотекой. Я думаю, что запросы не выполняются, что немного очевидно, когда я нажимаю CTRL + C, чтобы завершить программу. Работа requests
происходит в функции websracpe(URL)
, на самом деле я делаю это для более чем 30 различных значений на веб-странице.
Я попытался запустить подобный код без requests
, чтобы проверить, существуют ли файлы Excel генерируются параллельно и они есть! Есть ли какая-то обработка исключений для запросов, которые я не понимаю?
Извиняюсь за то, что я крипт c с моим кодом, это довольно долго, и я был бы рад ответить на любые вопросы по этому поводу.