用curl模拟登录论坛,抓取cookie并保存在 本地cookie.txt中。
在以后的模拟发贴过程中,可以读取cookie.txt后直接发贴,从而免去了登录的过程,节约了时间。
在实际检验中,各型论坛都可以这么做。现在我有两个疑问:一、用curl模拟登录后抓取并保存的cookie有效时间有多长?二、抓取这个cookie的有效时间是原论坛已经设定好的(自己无法改变的),还是可以通过设置curl参数来改变cookie的有效时间?恳请高人指点!拜谢!
在以后的模拟发贴过程中,可以读取cookie.txt后直接发贴,从而免去了登录的过程,节约了时间。
在实际检验中,各型论坛都可以这么做。现在我有两个疑问:一、用curl模拟登录后抓取并保存的cookie有效时间有多长?二、抓取这个cookie的有效时间是原论坛已经设定好的(自己无法改变的),还是可以通过设置curl参数来改变cookie的有效时间?恳请高人指点!拜谢!
CURLOPT_COOKIEFILE 读取cookie
我只知道这些,至于cookie的时效设置我就不知道了。个人感觉既然是模拟登录,那么cookie肯定跟人家论坛设置cookie时效有关。期待高人解答。
正常登录时候 写在了客户端cookie下
只是你模拟登录的时候讲cookie写在了文件里面而已!
以bbs.chinaz.com为例,curl模拟登录所得到的cookie是:
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk..chinaz.com TRUE / FALSE 1307937566 bbsmax_user ambo24pnvEnC20XjgDXbUzBs18kCCFFeXqIKAmRTGRcafr0FcMirRg==我在模拟登录过程中所提交的数据中并没有包括:autologin这一项(autologin是bbsmax论坛系统 是否自动登录的选项,实际就是设置cookie长有效期),而这个cookie的有效时间到2011-06-13,有效期180天。再后来的测试显示,无论有没有autologin这项数据,curl所得到的cookie都是180天有效期。
----------------------------------------------------------------------
我以为这个是bbsmax的bug, 就在测试正常情况下在chinaz.com提交数据,有和没有autologin数据项,cookie的有效期的情况。 测试结果是:没有autologin数据项的时候,cookie只在进程中有效,关闭浏览器cookie就失效了;有autologin的时候cookie的有效果期是180天。这个算是curl的bug呢,还是算做优点呢。(我正需要这一点呢^_^)
www.czhi-fi.com FALSE / FALSE 0 userpass 96E79218965EB72C92A549DD5A330112
www.czhi-fi.com FALSE / FALSE 0 username %CB%D8%D1%D5%B8%F1%B8%F1
www.czhi-fi.com FALSE / FALSE 0 skins 1
www.czhi-fi.com FALSE / FALSE 0 ASPSESSIONIDQASASACC OGBOJPJCIBAPIPNOAAHAMNPC
www.czhi-fi.com FALSE / FALSE 0 onlinetime 2010%2D12%2D13+14%3A35%3A09
www.czhi-fi.com FALSE / FALSE 0 addmin 0其中 “www.czhi-fi.com FALSE / FALSE 0 eremite 0”应该是有效期的设置,0表示有效期只在浏览进程中,关闭浏览器此cookie应该就失效了。然而事实上,今天我用这个昨天抓的cookie发贴照样有用! 这个是bbsxp系统。今天要测试dvbbs系统,都是asp/aspx的。过两天把phpwind和discuz都测试一下。然后公布结果
但是curl所抓的cookie,我们是可以随意修改的,而且改了都能用哦!!!