Maintenant, nous utilisons l'exploration multithread dans l'environnement Windows,
utilisez beautifulsoup+lxml pour l'analyse.
N threads d'exploration->file d'attente d'analyse->1 thread d'analyse->file d'attente de stockage->1 thread de stockage
L'efficacité de l'ensemble du programme d'exécution est bloquée dans les threads d'analyse intensifs en calcul. Si vous augmentez uniquement le nombre de threads d'analyse, cela augmentera la surcharge de changement de thread et ralentira la vitesse.
Excusez-moi, existe-t-il un moyen d'améliorer considérablement l'efficacité de l'analyse ?
Selon les instructions des deux cuisses, préparez-vous à utiliser
Exploration asynchrone->File d'attente d'analyse->N processus d'analyse->File d'attente de stockage->Fil de stockage
Prêt à commencer la construction
En fait, je pense que vous l'avez réécrit en premier
N个爬取线程
可以换成协程/线程池
实现, 因为你在频繁创建线程本省一种性能耗费, 用线程池虽然可以减少这部分的损耗, 但是上下文切换还是无法避免, 所以协程这方面, 应该是比较合适的.1个解析线程
换成进程池
,多开几个进程去计算密集处理, 其余应该可以不用改, 如果还想再搞, 将核心部分用c/c++
, j'espère que cela pourra vous aiderMon approche est multi-processus. L’avantage du multi-processus est que lorsque les performances d’une seule machine ne suffisent pas, vous pouvez à tout moment passer à un robot distribué.
Vous pouvez trouver le robot d'exploration asynchrone Tornade en ligne, je l'utilise