Многопроцессорный пул в питоне выкладывает ошибку шины 10 - PullRequest
0 голосов
/ 07 октября 2018

Я работаю над Google Image Crawler.

У меня есть источники страниц и извлечены части, в которые встроен href.

Исходные коды приведены ниже:

links = soup.find_all("a", class_="rg_l")
try:
    pool = Pool(8)
    pool.map(web_crawl.download_image, links)
finally:
    pool.close()
    pool.join()

Я пытался передать каждый элемент ссылок (список) в функцию download_image и запросить изображение по протоколу http.Но он продолжает выплевывать ошибку Bus 10.Любой совет будет принят.

(я проверял, что pool.map () вызывает эту ошибку)

download_image функция выглядит так:

def download_image(link):
    ua = UserAgent()
    headers = {"User-Agent": ua.random}

    # Get the image link
    try:
        r = requests.get("https://www.google.com" + link.get("href"), headers=headers)
    except:
        print("Cannot get link.")

    title = str(fromstring(r.content).findtext(".//title"))
    links = title.split(" ")[-1]

    # Download the image
    print("At : " + os.getcwd() + ", Downloading from " + links)
    try:
        if links.split(".")[-1] == ('jpg' or 'png' or 'jpeg'):
            urllib.request.urlretrieve(links, links.split("/")[-1])
    except:
        pass
...