Я пытаюсь реализовать многопроцессорную обработку в моем проекте веб-шифрования для очистки списка из 200 страниц 10 за раз, а не за один раз.
Моя проблема в том, что при реализации кодавызов функции из списка вызывает большой сбой, когда она вызывает операторы ввода вне вызываемой функции.
Вот весь пример сценария, демонстрирующий проблему:
#print statements to request necessary details to perform scrape
cleanURL = input("What is the URL? ")
pn = input("What is the product name? ")
condition = input("Is the product used or new? ").lower()
pages_available = input('How many pages of data do you want? ')
def scrape_page(URL):
#variables for storing/cleaning data for mysql queries
headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'}
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
#creates a list of 200 urls
url_list = []
for pages_unscraped in range(int(pages_available)+1):
URL = cleanURL + str(pages_unscraped)
if (pages_unscraped > 0):
url_list.append(URL)
#supposed to call the scrape_page function on the entire url_list
if __name__=='__main__':
p = Pool(10)
p.map(scrape_page, url_list)
p.terminate()
p.join()
Проблема, которая возникает, состоит в том, что она вызывает оператор ввода 10 раз, а не просто вызывает функцию 'scrape_page' для 10 URL-адресов из списка за раз.
Как я могу остановить программирование, чтобы вызватьвопрос