通过php的curl方法模拟请求的时候,通常都会遇到需要登录才能请求真实数据的网页。这个时候如果要抓取信息就必须在header里面传递cookie值。这里简要说下如何在curl里面添加cookie伪造登录模拟请求的方法。
1、通过chorme浏览器登陆网站,当然也可以使用firefox等可以看请求信息的浏览器,打开调试模式,看 Network 一栏的网页请求的 Request Headers 信息。
会看到关于请求所附带的 Cookie 信息,复制这里的Cookie值。
2、将复制的Cookie值赋给 curl 请求的header请求信息中即可。具体通过 curl 的 CURLOPT_COOKIE 参数设置。如下:
<?php $ch =curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://php.hhsy.cc/admin/manage.php'); ...... curl_setopt($ch, CURLOPT_COOKIE, 'phpernote_uuid=201704592623c0cd921; phpernote_nick_name=haoxiangni; PHPSESSID=hjf6lashdk4fb7an8t047keq42; phpernote_uuid=x201804210994325adbeaa8f0c31; phpernote_nick_name=%E6%9D%A5%E8%87%AA%3C223.72.74.235%3E%E7%9A%84%E7%BD%91%E5%8F%8B; Hm_lvt_30d2c5bcff96aa0e131e06c9bc4980d4=1524361902; Hm_lpvt_30d2c3bcff96aa0e121e06c9bc4980d4=1524383891'); ...... $content = curl_exec($ch);
好了,这里就可以模拟登陆进行请求相关的页面了。