1
justfly 2018-01-11 20:54:17 +08:00 2
首先确定 瓶颈 在哪里。
如果是阻塞的 IO 可以换非阻塞的 IO,便于榨干 CPU. 然后开多个线程并绑定到每个核心上。 之后看 CPU 和 带宽哪个先成为瓶颈,如果带宽不够用了,考虑只发 HEAD 请求,或者自己实现 HTTP Client 读完头部就关连接。如果 CPU 先成瓶颈那就换语言吧 代码逻辑上尽量增大并行度。 |
2
fiht 2018-01-11 22:59:35 +08:00
楼上大佬说得对。讲得很全面了。
还有一点就是做好 DNS 缓存,这个对爬虫性能影响很大。 |
3
akira 2018-01-12 02:39:35 +08:00
先粗暴的加机器
|
4
tSQghkfhTtQt9mtd 2018-01-12 08:23:51 +08:00 via Android
@fiht 有点在意 DNS 缓存要怎么做,前几周查了老半天。。(有个 python dns 请求量爆炸,不知道为啥全部都往上游发 dns,本地完全没缓存
|
5
qsnow6 2018-01-12 08:37:58 +08:00 via iPhone
scrapy
|