文档章节

curl带cookies采集

史帝文
 史帝文
发布于 2017/02/28 09:56
字数 265
阅读 61
收藏 0

今天接到一个任务,需要采集https://www.dianping.com 大众点评站。使用php curl时发现存在2个问题。

1,curl 针对https的设置。这个好解决。 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

2,后面采集时,发现还是被dianping.com转到别的链接上去了。经过分析和排查发现这个是带cookeis访问的。见图

3,使用php的curl存放dianping.com站的cookies失败。采用linux环境内的 curl -c cookie.txt https://www.dianping.com/search/category/207/10 直接得到cookies.txt。比php内的简单见cookies.txt内容

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

.dianping.com   TRUE    /       FALSE   0       PHOENIX_ID      0a0102fe-15a825c9312-1834aca
.dianping.com   TRUE    /       FALSE   1551317789      s_ViewType      10
www.dianping.com        FALSE   /       FALSE   0       JSESSIONID      D5829965CE0CE4E539181967FE7FB063
.dianping.com   TRUE    /       FALSE   1519781789      aburl   1

4,直接在php内加上cookies文件,去采集了。成功了。见截图及代码

<?php
$url = 'https://www.dianping.com/search/category/207/10#breadCrumb';
   
$curl = curl_init();    
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, "cook.txt");
curl_setopt($curl, CURLOPT_URL, $url);  
curl_setopt($curl, CURLOPT_TIMEOUT, 60); 
$contents = curl_exec($curl);
var_dump($contents);
curl_close( $curl ); 
?>

© 著作权归作者所有

共有 人打赏支持
史帝文
粉丝 6
博文 56
码字总数 22088
作品 0
武汉
后端工程师
私信 提问
cURL、file_get_contents、snoopy.class.php 优缺点

curl()、filegetcontents()、snoopy.class.php这三个远程页面抓取或采集中用到的工具,他们功能相当,到底有什么优缺点呢,下面逐一介绍: snoopy.class.php snoopy 是用 fsockopen 自开发的...

Junn
2013/07/29
0
0
求助!天猫的商品详情页怎么都采集不到内容,之前还好好的~~~

天猫的商品详情页(http://detail.tmall.com/item.htm?id=45028136433)两周前还能用snoopy采集到内容,但最近应该又修改了什么,curl(cookies也试了)、snoopy、fopen、filegetcontents都试过...

shuyaode
2015/07/12
2.5K
8
snoopy(强大的PHP采集类) 实例应用

Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单。 下载地址: http://sourceforge.net/project/showfiles.php?groupid=2091 Snoopy的一些特点: 1抓取网页的内容 fetc...

疯狂的流浪
2010/12/10
0
0
Linux curl命令参数详解

一、Linux curl用法举例: 1. linux curl抓取网页: 抓取百度: curl http://www.baidu.com 如发现乱码,可以使用iconv转码: curl http://iframe.ip138.com/ic.asp|iconv -fgb2312 iconv的用...

大糊涂
2015/07/03
0
0
PHP curl采集防盗链网站乱码问题求助

在采集一个视频资讯网站时发现其用了防盗链和爬虫、禁用cookies会报错,完全模拟采集后全是乱码。 用fillder抓包设置no compression 之后就可以看到正常的HTML代码了,不知道这是社么原理,如...

wsy5344
2015/05/02
1K
5

没有更多内容

加载失败,请刷新页面

加载更多

new Date() 在Safari下的 Invalid Date问题

问题复现 var timeStr = '2018-11-11 00:00:00';var time = new Date(timeStr);// error: Invalid Date... 在safari浏览器下,time为Invalid Date, 导致后面代码执行错误; 其他浏览器诸...

会写代码的husky
13分钟前
1
0
0009-如何升级Cloudera Manager和CDH

1.文档编写目的 本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识: 1.如何对Cloudera Manager进行停机升级 2.如何对CDH进行停机升级 3.如何在不影响集群作业的情况...

Hadoop实操
23分钟前
0
0
vue2中引用 better-scroll的方法

文章主要介绍了vue2中引用better-scroll和使用 better-scroll的方法,使用时有三个要点及注意事项在文中给大家详细介绍 ,需要的朋友可以参考下 使用时有三个要点: 一:html部分 <div class...

前端攻城老湿
33分钟前
0
0
浅谈教你如何掌握Linux系统

linux能做什么?相信绝大数人都有这样的疑问。可以玩吃鸡吗?可以玩lol吗? 如果你是以娱乐的名义来评价linux的可用性,对不起,linux可能不适合你,因为linux是一个工具,他是教你聪明的,不...

linuxprobe16
39分钟前
0
0
java中线程池的生命周期

线程池生命周期包括: RUNNING:接收新的任务并处理队列中的任务 SHUTDOWN:不接收新的任务,但是处理队列中的任务 STOP:不接收新的任务,不处理队列中的任务,同时中断处理中的任务 TIDYING:所...

小刀爱编程
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部