微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Pycurl 时出错“处理您的请求时发生错误”- Ref: 166

如何解决使用 Pycurl 时出错“处理您的请求时发生错误”- Ref: 166

我在 CLI Git Bash MINGW64 中有一个可用的 curl 命令,(在 64 位 Windows 系统上运行) 当我尝试使用 pycurl 执行 完全相同 时遇到错误
在我的情况下,我不可能使用请求模块,因为 cookie(我相信服务器端)不断变化。 错误详情:

\n处理您的请求时出错。

\n参考编号 #166.d42fc917.1617321392.ff26e08\n

from io import BytesIO #in some cases StringIO
import pycurl,certifi

url = 'https://www.nseindia.com/apI/Option-chain-equities?symbol=TCS'

storage = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL,url)
c.setopt(c.WRITEFUNCTION,storage.write)
c.setopt(pycurl.CAINFO,certifi.where())
c.setopt(pycurl.HTTPHEADER,['authority : www.nseindia.com','pragma : no-cache','cache-control : no-cache','sec-ch-ua : "Google Chrome";v="89","Chromium";v="89",";Not A Brand";v="99"','sec-ch-ua-mobile : ?0','upgrade-insecure-requests : 1','accept :t ext/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','sec-fetch-site : none','sec-fetch-mode : navigate','sec-fetch-user : ?1','sec-fetch-dest : document','accept-language : en-US,en;q=0.9','cookie : _ga=GA1.2.40175295.1616260400; _gid=GA1.2.1973875672.1616988259; AKA_A2=A; nsit=IbjTPM0eCYQtrdpn5ixd64wf; bm_mi=8B2B177D24D759480C906B16FF2FFC43~x7FwmvQtE2lotqEt8ljGmuaZw71xFg13v0TyL+j3uAr1y874gE51K1i6J+vVDdDw+fJdpXSxnuedoP0qW89hp3zbsz5k/RGWYFLF/sRNrMyOhmWFNA8lit7l9h2uZVmczMhUGXv2ta0wn+noNEYkJeqNMsxZIX6JlfFcIH/BHagb9iIqdCeMSMbvz9udyTmzviF57a9WACQDK1n9yyi9dph62ijI1iVnjhZeoMdOlfZ3NMS3XJAO0nk7J4jK4+zBmAi+yUMg44jv+rvE9MHOKIFeR1brotHWZAdr53+i+HdSokrFLAB0FQeEXkso06ZD5EmFVAMabPKRUIoXl3KTgg==; _gat_UA-143761337-1=1; ak_bmsc=8FF8975243E411E6A68780815FCFB9EC17203984F3160000865466603401E11A~pljkjT3j7fbYRPCnf/OA/w4F5897AFPySNVMnec92K6be0angr7rKDOI2rwF5HzlyGZ7z7QDtZ6phykuNFIYwbC547jq2+7+N3NSuMpOJbPEbaouICqCd9hFkCqKn0fFMYkeN50XRNUKGgwF5lWzONfAxIWabbxBwNDD0otVlqeoXKMOsA4NISvrAtbZEag+tDV47QK+o3fzKi/e6rBR45wNnIwIHIbk+sWCRBMfLwkYpMJlJLwXcX0IyvO32YKyLF; nseQuoteSymbols=[{"symbol":"JSWSTEEL","identifier":null,"type":"equity"},{"symbol":"AARTIIND",{"symbol":"ADANIPORTS",{"symbol":"ITC",{"symbol":"TCS","type":"equity"}]; nseappid=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhcGkubnNlIiwiYXVkIjoiYXBpLm5zZSIsImlhdCI6MTYxNzMxOTA1OCwiZXhwIjoxNjE3MzIyNjU4fQ.Qa2Nc9wTkzVyXEEgGoQnF9qZP_4DUyHWDD1aA6fNHO4; RT="z=1&dm=nseindia.com&si=c4824ab5-f9b4-4c6f-bfd4-9e1add879291&ss=kmzi06f3&sl=3&tt=3ly&bcn=%2F%2F684fc53f.akstat.io%2F&ld=7gg&nu=c98d4db934b7fbaaf0cc72e3942be095&cl=9l7"; bm_sv=F4F068D163E98751DB1D7DBEBC70365F~t9gLTDxMie3kFCzcck2ps9ZQoXb+AQ6JAOStAym+bxvJx0v7c9Z3OYJPW02NBuZ08cu7cwo4UXO5eFPFUkx4FvwKNlZCQmaxxvMP6AavceTV8ZCUZbEmK/F3L/tB2lw3scqEVyoibKSWYQaj9PdFeqs+omjC38ksjo6Pd/+doXk='])
c.perform()
c.close()
content = storage.getvalue()
print (content)

以下是已经尝试过的步骤: 我试过证书,没有。 如果没有证书,它会提供 SSL(错误号 60)

我也尝试使用 perform_rs() 和 StringOI 而不是 BytesIO,但我仍然没有得到与“Git Bash”相同的输出 >

重要说明:标题中的 Cookie 不断变化,因此无法按原样复制问题。

此外,我使用的是 Windows 8.1 和 Python 3.7.4 真的会很感激关于上述问题的任何建议/指示。 TIA。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。