伊谢尔伦2017-04-17 17:50:02
実のところ、私は DHT クローラーの発言に同意しません。
言語が異なれば当然用途も異なります。環境抜きでどちらが良いとか悪いとか言うのはただのフーリガニズムです。
1. 目的を絞った方法で数ページをクロールするなど、趣味でやっている場合、効率が重要な要件ではない場合は、どの言語でも動作し、パフォーマンスの違いは大きくありません。もちろん、非常に複雑なページに遭遇し、正規表現が非常に複雑であれば、クローラーの保守性は低下します。
2. 方向性クロールを行っており、ターゲットが動的 JS を解析する必要がある場合。
したがって、現時点では、通常のリクエストページを使用してコンテンツを取得する方法は間違いなく機能しません。js コードを動的に解析するには、filfox や chrome と同様の js エンジンが必要です。現時点では、casperJS+phantomjs または SlimerJS+phantomjs
3. 大規模な Web サイトのクローリングの場合
このとき、効率、拡張性、保守性などを考慮する必要があります。
大規模なクローリングには、分散クローリング、重い判断メカニズム、タスクのスケジューリングなど、多くの側面が含まれます。より深く掘り下げると、次の質問のうちどれが簡単になりますか?
現時点では言語の選択が非常に重要です。
NodeJs: クロールが非常に効率的です。同時実行性が高く、マルチスレッド プログラミングは単純なトラバーサルとコールバックになり、メモリと CPU の使用量は少なく、コールバックは適切に処理される必要があります。
PHP: さまざまなフレームワークがどこでも利用できるので、どれでも使用できます。ただし、実際には PHP の効率に問題があります...多くは言いません
Python: 私は Python で多くのことを書いていますが、Python の方がさまざまな問題に対するサポートが優れています。 Scrapy フレームワークは使いやすく、多くの利点があります。
js は効率の問題を書くのにはあまり適していないと思います。書かなかったら、きっと大変なことになるでしょう。
私の知る限り、大企業も C++ を使用しています。つまり、そのほとんどはオープンソース フレームワーク上で修正されています。本当に車輪を再発明する人は多くありません。
価値がない。
感想をもとに何気なく書きました、修正歓迎です。
PHP中文网2017-04-17 17:50:02
pyspider を使用します。そのパフォーマンスは Scrapy よりも悪くなく、WEBUI を備えたより柔軟で、JS クロールもサポートしています~
独自のデモでプレイできます~
黄舟2017-04-17 17:50:02
nodejs +1
いいえ、私は間違っていました。
高性能のクローラーは、サーバーほど同時実行には適していませんが、効率性 (重複の削減) を考慮すると、同時実行よりも並列処理に適しています。
まあ、また間違っていました。
同時実行と並列処理はクローラーでもほぼ同じです~
いいえ、違います。
忘れてください、nodejs +1。
大家讲道理2017-04-17 17:50:02
そのほとんどは Python を使用しており、もちろん Java C++ も多数あります。 Python はすぐに使えるため、小規模および中規模のアプリケーションに比べて大きな利点があります。大規模な場合は、パフォーマンスのボトルネックとなるコードを書き直すために最適化または C が必要になります。