ホームページ  >  記事  >  バックエンド開発  >  Python マルチスレッド クローラーで遭遇する落とし穴

Python マルチスレッド クローラーで遭遇する落とし穴

鸟救山
鸟救山オリジナル
2020-05-20 11:03:05167ブラウズ

Python マルチスレッド クローラー メソッドには、関数メソッドとクラス オブジェクト メソッドが含まれます。 1. 関数型 start_new_thread(func,args[])。コード例は次のとおりです。

Python マルチスレッド クローラーで遭遇する落とし穴

図 1: 関数型マルチスレッド

2. Thread クラスを呼び出すクラス オブジェクト メソッドのコード例は次のとおりです。

Python マルチスレッド クローラーで遭遇する落とし穴

図 2: クラス オブジェクト メソッドマルチスレッド コードの構造とプロセス:

スレッド モジュールを導入します。

threading.Thread クラスを継承するサブクラス myThread を定義します。

親クラスThreadのrun()メソッドを再定義し、その中の関数コードを実行

スレッドオブジェクトをインスタンス化

スレッドstart()の実行を開始

実行が完了するまでスレッドキューに参加し、join() 。

発生した問題:

サブクラスの定義時に、クラスの定義とクラス内の参照メソッド print_time() でエラーが発生しました。具体的なコードとエラーを図 2 と図 3 に示します。

Python マルチスレッド クローラーで遭遇する落とし穴

図 2: エラー コード

Python マルチスレッド クローラーで遭遇する落とし穴

図 3: エラー メッセージ

2. 特定のクロールのアプリケーション http://www.78b2b.com/lianghuizhuanti/324826_1.html Web ページ情報の問題が発生しましたプロセス中。具体的なコードを図 4 に示します。

Python マルチスレッド クローラーで遭遇する落とし穴

Python マルチスレッド クローラーで遭遇する落とし穴

図 4: 特定のアプリケーション コード

このコードの目的は、マルチスレッドを使用して、13 の Web ページから 2020 年遼寧省政府活動報告書をクロールすることです。ローカルTXTに保存 ファイル内では、Webページは全て開いているのに、TXT保存データが不完全で内容が繰り返し書き込まれるという現象が実行処理中に発生します。

以上がPython マルチスレッド クローラーで遭遇する落とし穴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。