PHPCURL获取cookies模拟登录的方法_php实例
作者:coraft | 来源:互联网 | 2023-10-17 11:22
PHPCURL获取cookies模拟登录的方法_php实例:要提取google搜索的部分数据,发现google对于软件抓取它的数据屏蔽的厉害,以前伪造下USER-AGENT就可以抓
要提取google搜索的部分数据,发现google对于软件抓取它的数据屏蔽的厉害,以前伪造下 USER-AGENT 就可以抓数据,但是现在却不行了。利用抓包数据发现,Google 判断了 COOKIEs,当你没有COOKIEs的时候,直接返回 302 跳转,而且是连续几十个302跳转,根本抓不了数据。
因此,在发送搜索命令时,需要先提取 COOKIEs 并保存,然后利用保存下来的这个COOKIEs再次发送搜索命令即可正常抓数据了。这其实和论坛的模拟登录一个道理,先POST登录,获取COOKIEs并保存,然后利用这个COOKIEs访问就可以了。
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向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ...
[详细]
蜡笔小新 2023-12-14 21:02:28
-
本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ...
[详细]
蜡笔小新 2023-12-14 10:06:19
-
-
本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ...
[详细]
蜡笔小新 2023-12-13 23:42:43
-
本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ...
[详细]
蜡笔小新 2023-12-10 10:19:23
-
本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ...
[详细]
蜡笔小新 2023-12-09 17:40:33
-
PHP中的curl_multi系列函数可以实现同时请求多个URL来实现并发,而不是像普通curl函数那样请求后会阻塞,直到结果返回才进行下一个请求。因此在批量请求URL时可通过curl_multi系列函数提升程序的运行效率。curl普通请求$startT ...
[详细]
蜡笔小新 2023-10-17 19:36:06
-
最近在做一个蜘蛛项目,发现在抓取数据时,有时会碰到301的页面,原本写的curl_init函数php7-远程获取api接口或网页内容 ...
[详细]
蜡笔小新 2023-10-17 17:12:03
-
题源:46.全排列初次接触回溯法真的好难,debug了半天才了解到了其中的具体原理过程,接下来我引用weiwei哥的讲解和我自己的一些理解, ...
[详细]
蜡笔小新 2023-10-17 11:11:58
-
编译并安装#make&&makeinstall安装结果摘要,里面有几个主要的安装路径变量libtool:install:warning:remembertorunli ...
[详细]
蜡笔小新 2023-10-16 19:16:10
-
2019独角兽企业重金招聘Python工程师标准一、查看php5是否安装了curl:1在web服务器目录(Ubuntu下通常为varwww ...
[详细]
蜡笔小新 2023-10-16 12:34:16
-
在使用豆瓣OAuth登录接口时,我们需要发送这样的HTTPREQUEST请求:GETv2user~meHTTP1.1Host:https:api.douban.com ...
[详细]
蜡笔小新 2023-10-15 13:35:22
-
本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ...
[详细]
蜡笔小新 2023-12-13 17:48:58
-
本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ...
[详细]
蜡笔小新 2023-12-09 20:30:48
-
蜡笔小新 2023-10-16 19:49:55
-
本篇文章为大家展示了input语句的作用有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML标签 ...
[详细]
蜡笔小新 2023-10-15 11:29:51
-