基于PHP的cURL快速入门教程 (小偷采集程序)

2019-04-09 06:33:16丽君

// ...
curl_exec($ch);
$info = curl_getinfo($ch);
echo '获取'. $info['url'] . '耗时'. $info['total_time'] . '秒';
// ...

返回的数组中包括了以下信息:

“url” //资源网络地址 “content_type” //内容编码 “http_code” //HTTP状态码 “header_size” //header的大小 “request_size” //请求的大小 “filetime” //文件创建时间 “ssl_verify_result” //SSL验证结果 “redirect_count” //跳转技术   “total_time” //总耗时 “namelookup_time” //DNS查询耗时 “connect_time” //等待连接耗时 “pretransfer_time” //传输前准备耗时 “size_upload” //上传数据的大小 “size_download” //下载数据的大小 “speed_download” //下载速度 “speed_upload” //上传速度 “download_content_length”//下载内容的长度 “upload_content_length” //上传内容的长度   “starttransfer_time” //开始传输的时间 “redirect_time”//重定向耗时

基于浏览器的重定向

在第一个例子中,我们将提供一段用于侦测服务器是否有基于浏览器的重定向的代码。例如,有些网站会根据是否是手机浏览器甚至用户来自哪个国家来重定向网页。

我们利用 CURLOPT_HTTPHEADER 选项来设定我们发送出的HTTP请求头信息(http headers),包括user agent信息和默认语言。然后我们来看看这些特定网站是否会把我们重定向到不同的URL。

// 测试用的URL
$urls = array(
    "http://www.cnn.com",
    "http://www.mozilla.com",
    "http://www.facebook.com"
);
// 测试用的浏览器信息
$browsers = array(
    "standard" => array (
        "user_agent" => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)",
        "language" => "en-us,en;q=0.5"
        ),
    "iphone" => array (
        "user_agent" => "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A537a Safari/419.3",
        "language" => "en"
        ),
    "french" => array (
        "user_agent" => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 2.0.50727)",
        "language" => "fr,fr-FR;q=0.5"
        )
);

相关文章 大家在看