84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
여러 프로세스를 사용하여 데이터를 크롤링하고 파일에 기록하면 실행 시 오류가 보고되지 않지만 파일을 열면 왜곡됩니다.
멀티스레딩으로 다시 작성할 때는 그런 문제가 없으며 모든 것이 정상입니다. 다음은 파일에 데이터를 쓰는 코드입니다.
여러 프로세스를 위한 프로세스 풀
사진에서 언급한 것처럼 파일이 잘못된 인코딩으로 로드되는데, 이는 여러 프로세스에서 작성할 때 인코딩이 utf-8이 아니라는 의미입니다
파일의 첫 번째 줄을 추가하세요:
동일한 파일을 여는 것은 매우 위험하며, 멀티스레딩에서 오류가 발생하지 않으면 GIL일 가능성이 가장 높으며, 여러 프로세스에는 잠금이 없으므로 오류가 발생하기 쉽습니다. 실수를 하다. 으아악 생산자-소비자 모델로 변경을 권장합니다!
이렇게
결과
foo /6/wssd_content.jsp?bookidfoo /1/wssd_content.jsp?bookidfoo /2/wssd_content.jsp?bookid foo /3/wssd_content.jsp?bookidfoo /7/wssd_content.jsp?bookidfoo /8/wssd_content.jsp?bookidfoo /9/wssd_content.jsp?bookid
사진에서 언급한 것처럼 파일이 잘못된 인코딩으로 로드되는데, 이는 여러 프로세스에서 작성할 때 인코딩이 utf-8이 아니라는 의미입니다
파일의 첫 번째 줄을 추가하세요:
으아악동일한 파일을 여는 것은 매우 위험하며, 멀티스레딩에서 오류가 발생하지 않으면 GIL일 가능성이 가장 높으며, 여러 프로세스에는 잠금이 없으므로 오류가 발생하기 쉽습니다. 실수를 하다.
으아악
생산자-소비자 모델로 변경을 권장합니다!
이렇게
으아악결과
foo /4/wssd_content.jsp?bookid
foo /5/wssd_content.jsp?bookidfoo /6/wssd_content.jsp?bookid
foo /1/wssd_content.jsp?bookid
foo /2/wssd_content.jsp?bookid
foo /3/wssd_content.jsp?bookid
foo /7/wssd_content.jsp?bookid
foo /8/wssd_content.jsp?bookid
foo /9/wssd_content.jsp?bookid