PHP CURL获取cookies模拟登录的方法


Posted in PHP onNovember 04, 2013

要提取google搜索的部分数据,发现google对于软件抓取它的数据屏蔽的厉害,以前伪造下 USER-AGENT 就可以抓数据,但是现在却不行了。利用抓包数据发现,Google 判断了 cookies,当你没有cookies的时候,直接返回 302 跳转,而且是连续几十个302跳转,根本抓不了数据。
因此,在发送搜索命令时,需要先提取 cookies 并保存,然后利用保存下来的这个cookies再次发送搜索命令即可正常抓数据了。这其实和论坛的模拟登录一个道理,先POST登录,获取cookies并保存,然后利用这个cookies访问就可以了。
PHP 代码如下:

<?php
header('Content-Type: text/html; charset=utf-8');$cookie_file = dirname(__FILE__).'/cookie.txt';
//$cookie_file = tempnam("tmp","cookie");
//先获取cookies并保存
$url = "http://www.google.com.hk";
$ch = curl_init($url); //初始化
curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出
curl_setopt($ch, CURLOPT_COOKIEJAR,  $cookie_file); //存储cookies
curl_exec($ch);
curl_close($ch);
//使用上面保存的cookies再次访问
$url = "http://www.google.com.hk/search?oe=utf8&ie=utf8&source=uds&hl=zh-CN&q=qq";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //使用上面获取的cookies
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
PHP 相关文章推荐
综合图片计数器
Oct 09 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
简单的php中文转拼音的实现代码
Feb 11 PHP
PHP中feof()函数实例测试
Aug 23 PHP
php查找字符串出现次数的方法
Dec 01 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
PHP共享内存使用与信号控制实例分析
May 09 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 PHP
php Session存储到Redis的方法
Nov 04 #PHP
在PHP中使用redis
Nov 04 #PHP
6种php上传图片重命名的方法实例
Nov 04 #PHP
php preg_replace替换实例讲解
Nov 04 #PHP
php define的第二个参数使用方法
Nov 04 #PHP
Linux编译升级php的详细方法
Nov 04 #PHP
php获取操作系统语言代码
Nov 04 #PHP
You might like
PHP分页显示制作详细讲解
2006/10/09 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
PHP对象实例化单例方法
2017/01/19 PHP
php实现等比例压缩图片
2018/07/26 PHP
js实现图片旋转的三种方法
2014/04/10 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
python实现rest请求api示例
2014/04/22 Python
Python中的CURL PycURL使用例子
2014/06/01 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
初中校园广播稿
2014/02/02 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
电钳工人个人求职信
2014/05/10 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
朋友离别感言
2015/08/04 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python