파이썬 멀티프로세싱
-
게시물 수정 , 삭제는 로그인 필요
파이썬으로 멀티프로세싱 모듈을 사용한 웹스크래핑 코드를 작성하고 있습니다.
danawa_search 함수에 들어가면 sh_data 배열(한글정보)에 들어있는 정보를 url 인코딩하여 danawa_url과 합쳐 검색하는 코드입니다.
실행을 해보면 다나와 사이트에서 하나씩 검색하여 그 페이지가 나와야하는데 http://www.danawa.com/dsearch.php?query=인
으로 검색됩니다.
멀티프로세싱을 사용하지 않고 단일프로세스로 실행하면 원하는대로 접속이 이루어집니다. 무엇이 문제일까요?
import time
from multiprocessing import Pool
from selenium import webdriver
from bs4 import BeautifulSoup
import urllib
danawa_url = 'http://search.danawa.com/dsearch.php?query='
def danawa_search(link):
browser = webdriver.Chrome()
for x in link:
danawa_link = ""
search_product_name = x
product_link = danawa_url + urllib.parse.quote(x)
print(product_link)
browser.get(product_link)
if __name__ == '__main__':
start_time = time.time()
pool = Pool(processes=2)
# shcom_data = [shcom_search()]
sh_data = ['인텔 코어i5-10세대 10400 코멧레이크S', 'AMD 라이젠5-3세대 마티스 3600', '인텔 코어i7-10세대 10700K 코멧레이크S']
pool.map(danawa_search, sh_data)
#danawa_search(shcom_data)
print("--- %s seconds ---" % (time.time() - start_time))
#파이썬 멀티프로세싱 #파이썬 멀티프로세싱 pool #파이썬 멀티프로세싱 데이터 공유 #파이썬 멀티프로세싱 멀티스레딩 차이 #파이썬 멀티프로세싱 예제 #파이썬 멀티프로세싱 코어 수 #파이썬 멀티프로세싱 무한루프 #파이썬 멀티프로세싱 크롤링 #파이썬 멀티프로세싱 멀티스레딩 #파이썬 멀티프로세싱 변수 공유