php禁止网页抓取(PHP完整Curl数据函数:伪造客户端IP地址,伪造访问referer )

优采云 发布时间: 2021-12-08 12:19

  php禁止网页抓取(PHP完整Curl数据函数:伪造客户端IP地址,伪造访问referer

)

  1、伪造客户端IP地址,伪造访问referer:(一般这样可以访问数据)

  curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-FORWARDED-FOR:110.85.108.185', 'CLIENT-IP:110.85.108.185']);

curl_setopt($curl, CURLOPT_REFERER, 'http://www.demo.com/test.php');

  2、如果以上还是不行,可能是别人抓到了真实IP。这个时候我们会使用代理访问。

  # 详细方式

curl_setopt($curl, CURLOPT_PROXY, '112.85.209.72'); //代理服务器地址

curl_setopt($curl, CURLOPT_PROXYPORT, 80); //代理服务器端口

//curl_setopt($curl, CURLOPT_PROXYUSERPWD, ':''); //http代理认证帐号,username:password的格式

curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式

# 简写方式

curl_setopt($curl, CURLOPT_PROXY, 'http://112.85.209.72:80');

  3、 还有另一种类型可以用浏览器访问,但不能用 curl。 (对方检查了useragent,如果没有,则认为是非法来源等)

  $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ';

$useragent.= '(KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36';

curl_setopt($curl, CURLOPT_USERAGENT, $useragent);

  PHP完整的Curl抓取数据功能:

  /**

* 请求接口

* @access public

* @param string $url 请求地址

* @param array $data 提交参数 没有get 有post

* @return bean|array

*/

public function send($url='')

{

set_time_limit(0);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-FORWARDED-FOR:127.0.1.1', 'CLIENT-IP:127.0.1.1']);

curl_setopt($curl, CURLOPT_REFERER, 'http://www.demo.com/demo.php');

curl_setopt($curl, CURLOPT_PROXY, 'http://127.0.0.1:80');

$useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ';

$useragent.= '(KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36';

curl_setopt($curl, CURLOPT_USERAGENT, $useragent);

if(!empty($data) && is_array($data)){

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

}

$html = curl_exec($curl);

if($error=curl_errno($curl)){

return false;

}

curl_close($curl);

return $html;

}

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线