php curl url跳转,PHP CURL页面数据抓取时遇到window.location.href跳转

本代码仅供PHPer交流学习使用!

本代码仅供PHPer交流学习使用!

本代码仅供PHPer交流学习使用!

一开始以为只要设置 curl CURLOPT_FOLLOWLOCATION,true即可,当抓取时依然返回的果js跳转。

先在浏览器访问目标网站,获取网页cookie,这里获取cookie并不是有些网站的登录的cookie,目标网站不需要登录,但给来访用户都用JS设置了cookie,先判断了cookie是否存在,不存在则返回js跳转代码,所以这里我们直接用浏览器代码审查,查看网络请求,获取网页cookie,然后设置到curl请求中,当然,额外设置下useragent,header等信息,模拟下真实请求

$curl = curl_init();

//设置抓取的url

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_NOBODY, false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, 0);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_TIMEOUT, 20);

curl_setopt($curl, CURLOPT_REFERER, $url);

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0');

curl_setopt($curl, CURLOPT_COOKIE, '这里填写浏览器中记录的cookie');

curl_setopt($curl, CURLOPT_HTTPHEADER, ['Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2']);

curl_setopt($curl, CURLOPT_ENCODING, 'gzip, deflate');

//执行命令

$res = curl_exec($curl);

//关闭URL请求

curl_close($curl);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值