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