皮皮赖's Blog - 爬虫
type: channel
link: https://www.lp.fyi/tag/爬虫/
items: PHP curl登录获取cookie 并提交POST数据或获取数据
items: PHP模拟百度蜘蛛，伪造IP爬行网站，附源代码

PHP curl登录获取cookie 并提交POST数据或获取数据
type: item
date: 2018-05-29T08:07:00+08:00
description: 需求登录某网站，并提交数据。解决方案curl登录保存cookie，然后提交需要提交的数据/** * 登录获取cookie并提交数据 * @author Reaper <369994633@qq.com> * @param string $login_url 登录URL * @param string|array $login_data 登录账号密码 * @param string $binding_url 获取cookie后要提交数据的地址 * @param string|array $binding_data 获取cookie后要提交的数据 * @return string */ public function bt_addlink($login_url,$login_data,$binding_url,$binding_data){ $login_val = curl_init($login_url); curl_setopt($login_val,CURLOPT_HEADER,1); curl_setopt($login_val,CURLOPT_RETURNTRANSFER,1); curl_setopt($login_val,CURLOPT_POSTFIELDS,$login_data); $login_go = curl_exec($login_val); preg_match('/Set-Cookie:(.*);/iU',$login_go,$cookie); curl_close($login_val); $binding_val = curl_init($binding_url); curl_setopt($binding_val,CURLOPT_RETURNTRANSFER,1); curl_setopt($binding_val,CURLOPT_POSTFIELDS,$binding_data); curl_setopt($binding_val,CURLOPT_COOKIE,$cookie['1']); $binding_go = curl_exec($binding_val); curl_close($binding_val); return $binding_go; } 原创文章 未经许可 禁止搬运！

PHP模拟百度蜘蛛，伪造IP爬行网站，附源代码
type: item
date: 2018-04-13T12:48:00+08:00
description: 最近各位应该知道那些代刷网的漏洞吧，就是推广漏洞，无限撸的漏洞，别的地方我不知道，反正我的群(群号：545688344)撸爆了。作俑者就是我，给各位站长说抱歉了，下面放出我的思路和代码。开始我就猜想模拟X-FORWARDED-FOR和CLIENT-IP可不可以实现他这个一个IP点击一次算推广一次的方法，事实证明是可以的，但是基本所有的代刷网都有个特点 用 curl 或者 get_contents 这两个函数都不能访问，个人猜想应该是有屏蔽（PS：我没看过代刷网的源码），但是我看到似乎很多代刷网百度都有收录，就想模拟百度蜘蛛应该可以吧，于是就用模拟了百度的USER_AGENT，运行结果可行，下面贴代码：<?php // 关闭PHP报错 error_reporting( E_ALL^E_NOTICE^E_WARNING ); //实现使用curl模拟百度蜘蛛进行采集 function Go( $url ) { $ch = curl_init(); //随机生成IP $ip = rand(0,255).'.'.rand(0,255).'.'.rand(0,255).'.'.rand(0,255) ; // 百度蜘蛛 $timeout = 15; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_TIMEOUT,0); //伪造百度蜘蛛IP curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-FORWARDED-FOR:'.$ip.'','CLIENT-IP:'.$ip.'')); //伪造百度蜘蛛头部 curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); $content = curl_exec($ch); } //判断url是否存在 存在进行访问 if ($_GET['url']) { $api = $_GET['url']; $data = Go($api); sleep(10); $mydata = ['msg'=>200,'val'=>'提交成功','num'=>1]; exit(json_encode($mydata, JSON_UNESCAPED_UNICODE)); }else{ $mydata = ['msg'=>404,'val'=>'提交失败','cause'=>'URL推广链接不能为空']; exit(json_encode($mydata, JSON_UNESCAPED_UNICODE)); }给各位站长的建议：推广插件尽量还是别用，如果要用还是加验证码，验证码比较容易识别的就算了，你们现在那种验证码我已经写好识别了，但是考虑到问题决定暂时不发，请各位站长及时修复！原创文章 未经许可 禁止搬运！