代码是一个爬虫,用于爬取指定网站的数据,然后通过云引擎调用返回json数据,之前做的已经能够正常运行了(本地和部署到云端都能正常运行),但是就在前几天网站改版,于是重新写爬虫,也就是换了个url,重新解析网页内容,本地测试通过,提交到云端,结果有一个功能的抓取始终返回 timeout(一共是有4个功能,每个功能抓取不同的网页数据整理返回)也就是说,部署到云端的代码中,前面几个功能都正常,就是最后一个功能不能运行。重点是,本地完全能够正常运行,一旦部署上去就不行了,代码有调试过,基本没问题,网站方面也是测试过没有问题的,所以现在无从下手了。。。求助 sob


现在大概定位到错误,是这样的:一个url链接(因为网站改版,所以新增了需要访问这个url),用的是 Requests 中的 session 来访问这个url:

session = requests.session()

session.get(url,cookies = cookie,timeout = 10).text

就是这一行代码出现了问题,本地调用能够正常得到返回数据,而部署上去调用就会出错,而且还看不到错误日志(部署后调用直接返回500错误,日志没有反应...),实在搞不懂这是怎么回事;同样的url,本地和云端调用的结果就不一样,而且也就这一个url,其它url的调用就是正确的。本地调用能够正常返回结果,我想应该就不是代码或者url或者cookie的问题了吧,但也想不到其他可能的问题了啊。。。

首先你抓取的网站是否是国外的?LeanCloud 服务器在国内,有可能出现抓取较慢或根本抓取不了的情况。

注意在每个环节检查是否有错误,打印一些用于诊断的日志,Python 的错误处理我不太了解( @asaka ),只要信息被打印到标准输出和标准错误输出,就会显示在控制台上。

云函数会捕获异常,根据异常返回给用户报错信息,但是没有打印到控制台。这里需要您自己捕获一下再打印。

后续会增加开关,允许将异常打印到控制台的。

是国内的网站,谢谢你的提醒,我想应该从网站那边再分析一下,可能网站那边有限制ip访问