java saefetchurl_Sina App Engine分布式网页抓取服务 – FetchURL

特别说明:

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适用的场景主要有:

抓取http资源

发送http rest请求

FetchURL支持https,并且支持重定向

$f = new SaeFetchurl();

$content = $f->fetch(‘http://sina.cn’);

$f = new SaeFetchurl();

$f->setMethod(‘post’);

$f->setPostData( array(‘name’=> ‘easychen’ , ‘email’ => ‘easychen@gmail.com’ , ‘file’ => ‘文件的二进制内容’) );

$ret = $f->fetch(‘http://photo.sinaapp.com/save.php’);

//抓取失败时输出错误码和错误信息if ($ret === false)

var_dump($f->errno(), $f->errmsg());

errno: 0 成功

errno: 600 fetchurl 服务内部错误

errno: 601 accesskey 不存在

errno: 602 认证错误,可能是secretkey错误

errno: 603 超出fetchurl的使用配额

errno: 604 REST 协议错误,相关的header不存在或其它错误,建议使用SAE提供的fetch_url函数

errno: 605 请求的URI格式不合法

errno: 606 请求的URI,服务器不可达

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值