84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
複数のプロセスを使用してデータをクロールし、それをファイルに書き込みます。実行中にエラーは報告されませんが、ファイルを開くと文字化けします。
マルチスレッドで書き換える場合にはそのような問題はなく、すべて正常です。 データをファイルに書き込むコードは次のとおりです:
複数プロセスのプロセスプール
画像で述べたように、ファイルは間違ったエンコーディングでロードされています。つまり、複数のプロセスで書き込む場合、エンコーディングは UTF-8 ではありません
ファイルの最初の行を追加します:
同じファイルを開くは非常に危険であり、マルチスレッドでエラーが発生しない場合は、GILである可能性が高く、複数のプロセスがロックしていないため、簡単にエラーが発生します。間違いを犯す。 リーリー
リーリー
foo /5/wssd_content.jsp?bookidfoo /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 /5/wssd_content.jsp?bookid
foo /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