标签:
FetchURL是SAE为开发者提供的分布式网页抓取服务,用来同步的抓取http页面,FetchURL针对国内的网络的做了优化,内部有调度系统,尽可能保证用户快速的抓取到目标页面。在SAE上使用FetchURL非常简单,只需要调用sae_std_lib中的几个简单的函数即可。
FetchURL是sae初期不支持curl时的替代方案,现在sae已经完全兼容 curl!
例如我想抓取百度的网页,那么代码如下:
<?php $f = new SaeFetchurl(); $content = $f->fetch(‘http://www.baidu.com‘); var_dump($content); ?>
可以访问 http://lazydemo.sinaapp.com/fetchurl/fetch_baidu.php 查看结果。
当然现在sae已经全面支持curl,以上的例子完全可以用curl改写:
关于curl的函数请参见:http://php.sinaapp.com/manual/zh/ref.curl.php
<?php // 创建一个新cURL资源 $ch = curl_init(); // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com/"); curl_setopt($ch, CURLOPT_HEADER, 0); // 抓取URL并把它传递给浏览器 curl_exec($ch); // 关闭cURL资源,并且释放系统资源 curl_close($ch); ?>
说到这方面的内容,大家应该都会想到snoopy,经过测试,sae对于snoopy是完全兼容的,具体可以移步:关于SAE(Sina App Engine)对snoopy的支持问题 此时还可以使用snoopy改写这个,见代码:
<?php // start test echo "i am alive!"; include("snoopy.class.php"); $snoopy = new Snoopy; $url = "http://www.baidu.com"; $snoopy->fetch($url); //获取所有内容 echo $snoopy->results; //显示结果 ?>
可以访问 http://lazydemo.sinaapp.com/fetchurl/snoopy_baidu.php 查看结果。
sae curl不支持CURLOPT_PROXY选项设置
http://lazydemo.sinaapp.com/fetchurl/fetchurl.zip
Sina App Engine(SAE)入门教程(8)- SaeFetchurl使用
标签:
原文地址:http://www.cnblogs.com/little-aladdin/p/4904138.html