動態

詳情 返回 返回

解決 curl_cffi 和 nameko/eventlet 的兼容性 - 動態 詳情

百度反扒上了 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...

圖片.png

使用的時候,添加 thread='eventlet' 就好了

也可以參考:Can it be used with eventlet/gevent?
user avatar u_17400586 頭像 chiqingdezhentou 頭像 fulade 頭像 manshenjiroudehuajuan 頭像 nixidexuegao 頭像 integrated_product_development 頭像 huaweiclouddeveloper 頭像 csh_716 頭像 realduang 頭像 user_zsxbv7bi 頭像
點贊 10 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.