- 服务概要
- 应用场景
- 使用指南
- 抓取页面
- 发起POST请求
- 错误码参考
- 服务限制与配额
- 服务限制
- 分钟配额
- 常见问题
- 服务概要
- 应用场景
- 使用指南
- 服务限制与配额
- 常见问题
服务概要
特别说明:SAE目前已经完全兼容cURL模块(内部用FetchURL实现),所以用户可以使用cURL*函数进行HTTP请求,兼容用户以往的使用习惯,使用户的学习成本降为零。所以我们推荐用户使用cURL*函数,以下关于FetchURL的文档仅供老用户参考。
FetchURL是SAE为开发者提供的分布式网页抓取服务,用来同步的抓取http页面,FetchURL针对国内的网络的做了优化,内部有调度系统,尽可能保证用户快速的抓取到目标页面。在SAE上使用FetchURL非常简单,只需要调用sae_std_lib中的几个简单的函数即可。但需要特别注意的是,为了平台安全性,SAE对FetchURL做了一些限制:
- http连接超时<=5秒
- send超时<=15秒
- read超时<=20秒
- http header禁用项:Content-Length、Host、Vary、Via、X-Forwarded-For、FetchUrl、AccessKey、TimeStamp、Signature、AllowTruncated、ConnectTimeout、SendTimeout、ReadTimeout
另外,SAE规定FetchURL的user-agent默认包含SAE/fetchurl-accesskey,其中accesskey是用户的accesskey,用户可以自行添加user-agent。Referer用户也可以自行定义。
应用场景
FetchURL适用的场景主要有:
使用指南
抓取页面
$content = $f->fetch('http://sina.cn');
发起POST请求
var_dump($f->errno(), $f->errmsg());
错误码参考
errno: 606 请求的URI,服务器不可达
服务限制与配额
SAE设置服务限制和配额的目的是为了防止个别用户攻击和滥用,从而在公有云计算平台上保证绝大多数开发者的正常使用。
1. 服务限制和配额设定是在门户网站新浪自身长期运维的基础上经过严格计算得出的,所以正常使用一般不会出现问题。经过SAE实际统计,99%的应用不会受到任何影响
2. 当您发现您的某项服务超过限制或者超配时,请先阅读相关文档确认限制和配额的具体数值,再检查自己的程序是否存在使用不当的情况,如果仍然解决不了,可以和SAE官方联系,saeadmin@sina.cn
服务限制
connect_timeout | 5秒 |
send_timeout | 15秒 |
read_timeout | 20秒 |
抓取文件大小 | 8MB |
禁用头,这些头用户无法修改 | Content- Length、Host、Vary、Via、X-Forwarded-For、FetchUrl、AccessKey、TimeStamp、 Signature、AllowTruncated、ConnectTimeout、SendTimeout、ReadTimeout |
分钟配额
运行在SAE上的应用(App)将会消耗平台资源,为保证各App不互相影响,我们引入了*分钟配额*的概念,即:在每分钟内每个应用的各个服务所消耗 的 资源的速度。比如,当平台中的某个应用的MySQLl服务一分钟内累计请求数达到10万,或者流出宽带超过200M,我们将会立即禁掉该应用的MySQL 服务,禁用五分钟后,会自动恢复,避免影响到SAE平台的稳定性。服务因为超过“分钟配额”而被禁用时,会在“服务状态”看到该服务被禁用的原因是:OverMinuteQuota
服务 | 请求数 | cpu时间 | 流入带宽 | 流出带宽 |
Fetchurl | 100,000 | NA | 200MB | 200MB |
常见问题
SAE平台出口IP:
220.181.129.126
220.181.129.121
220.181.136.229
220.181.136.230
http接口方需要IP授权可以进行相应的设置。