今天使用脚本爬取某网站的接口,发现使用nodejs、postman和chrome可以正确获取数据,使用Python requests却返回405,没办法,只能使用nodejs和popen,通过nodejs的https模块获取接口数据以后,使用popen返回给python进程.
没有过多久就发现那个网站的接口有反爬机制,短时间频繁调用直接会把ip给封了,无论是Python requests、nodejs的https模块、chrome浏览器、postman全都不行,再调用就是403的错误页面,通过切换多个wifi和手机热点证实了这一点。于是找到了一家提供隧道代理IP的云计算平台,购买了隧道代理IP服务,在这个平台上下载了python语言的示例代码,更换了我的账号和密钥,以及隧道地址和端口以后,发现不行,示例代码里就是用的Python requests。起初我还以为是我用的不对,结果按照平台上测试代理可用性的方法,使用Proxifier访问没问题,就是Python requests有问题,于是联系了平台人工客服,结果人工客服告诉我使用chrome浏览器和curl命令测试是可以正常访问的。于是我在本地试了一下curl,确实可以,但是不知道为什么Python requests不行,连人工客服都不知道。没有办法了,只能使用popen了。