打算做个采集,无记录下来备用
php的curl搞定ip伪装来采集内容。以前写过一段代码采集一个数据来处理。由于数据量过大,同一ip采集。经常被限制,或者列为黑名单。
写了段代码伪装ip,原理是,客户访问网站,获取客户ip,伪装客户ip去访问数据源。采集后处理缓存到/tmp公共目录(省了空间,不占用自己的空间),然后输出到客户浏览器。代码如下:
function curl($url) { $ip=$_SERVER['REMOTE_ADDR']; $headers['CLIENT-IP'] = $ip; $headers['X-FORWARDED-FOR'] = $ip; $headerArr = array(); foreach( $headers as $n => $v ) { $headerArr[] = $n .':' . $v; } $ch = curl_init(); $timeout = 5; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr ); //构造IP $file_contents = curl_exec($ch); curl_close($ch);
}