用curl模拟登录论坛,抓取cookie并保存在 本地cookie.txt中。
在以后的模拟发贴过程中,可以读取cookie.txt后直接发贴,从而免去了登录的过程,节约了时间。
在实际检验中,各型论坛都可以这么做。现在我有两个疑问:一、用curl模拟登录后抓取并保存的cookie有效时间有多长?二、抓取这个cookie的有效时间是原论坛已经设定好的(自己无法改变的),还是可以通过设置curl参数来改变cookie的有效时间?恳请高人指点!拜谢!

解决方案 »

  1.   

    CURLOPT_COOKIEJAR 存cookie
    CURLOPT_COOKIEFILE 读取cookie
    我只知道这些,至于cookie的时效设置我就不知道了。个人感觉既然是模拟登录,那么cookie肯定跟人家论坛设置cookie时效有关。期待高人解答。
      

  2.   

    这个cookie是人家给你定义的!
    正常登录时候 写在了客户端cookie下
    只是你模拟登录的时候讲cookie写在了文件里面而已!
      

  3.   

    经过测试,curl所抓取的cookie的有效期并不受原网站控制。至少bbsmax论坛系统就是这样。
    以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呢,还是算做优点呢。(我正需要这一点呢^_^) 
      

  4.   

    如果cookie的设置是用onlinetime就没有办法了。
      

  5.   

    www.czhi-fi.com FALSE / FALSE 0 eremite 0
    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都测试一下。然后公布结果
      

  6.   

    今天测试了dvbbs论坛7.x.x和8.x.x系列,cookie的有效果时间依然这样。而且发现了一个现象:我们知道浏览器所保存的cookie,如果手动修改了其中的有效期是没有用的。
    但是curl所抓的cookie,我们是可以随意修改的,而且改了都能用哦!!!
      

  7.   

    dvbbs和bbsmax 、 bbsxp最大的缺点是,登录要验证码(这是他们默认的设置),虽然能防止机器发贴,但增加了用户体验的障碍,所以他们发展的没有discuz 和 phpwind好。
      

  8.   

    phpwind 的各个版 也是这样。明天测试 discuz!NT,discuz X ,discuz
      

  9.   

    discuz的各版也是这样不说力了 结贴
      

  10.   

    来看看我的作品http://hi.baidu.com/xzvxl/blog/item/119c76ef92fe05024e4aeae1.html