Python クローラーの解析効率を向上させるにはどうすればよいですか?
Susan Sarandon
Susan Sarandon 2017-06-12 09:20:36
0
3
683

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

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

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

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

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

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

Susan Sarandon
Susan Sarandon

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

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

いいねを押す+0
    刘奇

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

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

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

      いいねを押す+0
        最新のダウンロード
        詳細>
        ウェブエフェクト
        公式サイト
        サイト素材
        フロントエンドテンプレート
        私たちについて 免責事項 Sitemap
        PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!