动态

详情 返回 返回

解決 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.