Python クローラーの解析効率を向上させるにはどうすればよいですか?
世界只因有你
世界只因有你 2017-06-12 09:20:36
0
3
772

現在、Windows 環境でマルチスレッド クロールを使用しています。
解析には beautifulsoup lxml を使用しています。

N クロール スレッド -> 解析キュー -> 1 解析スレッド -> ストレージ キュー -> 1 ストレージ スレッド

実行プログラム全体の効率は、計算量の多い解析スレッドに依存するため、解析スレッドの数だけを増やすと、スレッド切り替えのオーバーヘッドが増加し、速度が低下します。

解析効率を大幅に向上させる方法はありますか?

2 つの太ももの指示に従って、使用する準備をします
非同期クローリング -> 解析キュー -> N 解析プロセス -> ストレージ キュー -> ストレージ スレッド

仕事を始める準備ができました

世界只因有你
世界只因有你

全員に返信(3)
为情所困

実際、あなたが先に書き直したかと思いますN个爬取线程 可以换成协程/线程池实现, 因为你在频繁创建线程本省一种性能耗费, 用线程池虽然可以减少这部分的损耗, 但是上下文切换还是无法避免, 所以协程这方面, 应该是比较合适的.
1个解析线程 换成 进程池,多开几个进程去计算密集处理, 其余应该可以不用改, 如果还想再搞, 将核心部分用c/c++、お役に立てれば幸いです

いいねを押す +0
刘奇

私のアプローチはマルチプロセスです。マルチプロセスの利点は、単一マシンのパフォーマンスが十分ではない場合に、いつでも分散クローラに切り替えることができることです。

いいねを押す +0
淡淡烟草味

tornade 非同期クローラーはオンラインで見つけることができます。私はこれを使用しています

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート