看来我可以通过两种方式用 python 做快速爬虫:
带有 block 套接字的线程池
非 block 套接字选择、asyncore 等。
我认为这里线程中没有真正需要的地方,解决方案 #2 更好。
哪个更好,为什么?
最佳答案
Twisted通常优于 asyncore。它是一个异步 I/O 框架, can also work with thread pools .
在Python中,你应该更喜欢异步IO而不是线程,仅仅因为threads are a second class citizen in its canonical implementation (CPython)由于 GIL。
关于用于网络爬虫的 python asyncore 或线程池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673111/