百度反扒上了 TLS 指紋反爬蟲: python爬蟲 - 猿人學第十九題突破ja3指紋驗證
我們可以使用 curl_cffi 輕鬆無腦突破 TLS 指紋反爬蟲:curl_cffi: 支持原生模擬瀏覽器 TLS/JA3 指紋的 Python 庫
但是我在使用 curl_cffi + nameko 的時候,發現請求代理等 http 操作的延時很恐怖且越來越恐怖
我直接懷疑就是 curl_cffi 和 eventlet 的兼容性有問題,為什麼呢?因為我之前看到過文章説 eventlet 和 grpc 不兼容,因為 grpc 使用的是多線程庫不是 python 內置的多線程,所以 eventlet 的猴子補丁能給 python 內置的多線程打補丁,但是不認識 grpc 的多線程
參考: https://github.com/grpc/grpc/issues/15923
curl_cffi 估計也是一樣,因為 curl_cffi 是包裝了 curl,curl 的多線程估計是自己實現的。所以當 curl_cffi 和 nameko/eventlet 一樣使用的時候,一旦 curl_cffi 使用了多線程,nameko/eventlet 就無法獲取進程的控制權了,其下的協程就都被掛起了
那麼怎麼解決呢?參考:https://curl-cffi.readthedocs.io/en/latest/api/curl_cffi.requ...
使用的時候,添加 thread='eventlet' 就好了
也可以參考:Can it be used with eventlet/gevent?