手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

采用CURL登录量子统计

这是我很久前的文字了。只是。。。那个博客其实已经废掉了,被我用来尝试着赚点零花钱(域名费而已)
所以,这两天在用到它的时候,又COPY出来,做个备份。虽然其中大部分代码都有点一样,但其实还是略有区别,我这里还是贴我以前的文章。现在项目中用的就不贴了。。。

我自己的站点用的是量子统计,所以对于量子统计就需要有更多的研究和学习。
我想的是,如果我能够通过手机,每天在自己的某个指定页面,就能够看到朋友们过来时的关键字或者搜索引擎关键字等。我就可以利用他们有针对性的对网站进行优化?也可以随时关注网站的流量等信息了。

于是,想到什么就做什么,我直接用snoopy类开始尝试提交post数据,提交后取后返回值 ,并同时打开http://tongji.linezing.com/mystat.html页面(这是一个汇总页),但结果都是提示我需要登录。

如此反复尝试多次,也尝试用curl进行登录,但都是一直失败。最后我不得不祭起抓包利器:smartsniff,这是一个小工具,但是他的抓包功 能很强。于是我对我的行为开始抓包,从登录直到显示mystat.html页面,结果却发现,从登录开始,到显示mystat.html页面,一共抓了四 次包,他们分别是:

  1. http://www.linezing.com/login.php 登录提交页,POST提交
  2. http://www.linezing.com/router.php GET方式
  3. http://tongji.linezing.com/welcome.html GET方式
  4. http://tongji.linezing.com/mystat.html GET方式

其实我觉得奇怪的是,这四个页面是在同一台机器上,而且主机名却是bbs.linezing.com,好妖异。

不过,既然分析了抓包数据,得到这四个页面,那么剩下的就开始写代码了,欲知后事如何,请看周一的代码分析(其实是因为代码在单位的电脑上,在家里地无法更新而己),敬请关注。

PHP代码
  1. $cookiefile = tempnam( './log/' , 'cookie' );//设定cookie文件的路径 。  
  2. $ch = curl_init();  
  3. $header[]="Content-Type: application/x-www-form-urlencoded";    
  4. curl_setopt($ch, CURLOPT_URL, 'http://www.linezing.com/login.php');  //登录地址  
  5. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  //发送header ,其实这个header可以不发送  
  6. curl_setopt($ch, CURLOPT_POST, 1);  //这是POST数据  
  7. curl_setopt($ch, CURLOPT_POSTFIELDS, 'referer=&webname=index&username=用户名&password=密码&submit=%E7%99%BB%E5%BD%95');//http_build_query( $postData));    
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  //这个是代表curl_exec后取返回成字符串,而不是象WEB一样跳转  
  9. curl_setopt($ch, CURLOPT_HEADER, 0);  //curl返回的时候,默认都是带有header信息的,所以这里设为0,代表返回的时候不要header信息  
  10. curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); //这是在用sniff抓包的时候发现用了gzip,deflate的encoding,  
  11. curl_setopt($ch, CURLOPT_REFERER, 'http://www.linezing.com/');//记录来源的Referer  
  12. curl_setopt($ch, CURLOPT_COOKIEFILE,$cookiefile);  
  13. curl_setopt($ch, CURLOPT_COOKIEJAR,$cookiefile);  
  14. curl_exec($ch);  //我这里并没有取返回值,主要是把cookie记录下来  
  15.   
  16. curl_setopt($ch, CURLOPT_URL, 'http://www.linezing.com/router.php');  //登录后跳转的网址  
  17. //curl_setopt($ch, CURLOPT_COOKIEFILE,$cookiefile); 原先我在这里也记录cookie了,但事实上,我这样做之后,反而会把第一次登录时的cookie覆盖了。。。郁闷  
  18. //curl_setopt($ch, CURLOPT_COOKIEJAR,$cookiefile);  
  19. curl_setopt($ch, CURLOPT_REFERER, 'http://www.linezing.com/');  
  20. curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');  
  21. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
  22. curl_setopt($ch, CURLOPT_HEADER, 0);    
  23. curl_setopt($ch, CURLOPT_COOKIESESSION,1);  
  24. $res = curl_exec($ch);    
  25.   
  26. curl_setopt($ch, CURLOPT_URL, 'http://tongji.linezing.com/welcome.html');  //welcome页还会再判断是否登录,如果没有登录,会是一段JS跳到www.linezing.com  
  27. //curl_setopt($ch, CURLOPT_COOKIEFILE,$cookiefile);  
  28. //curl_setopt($ch, CURLOPT_COOKIEJAR,$cookiefile);  
  29. curl_setopt($ch, CURLOPT_REFERER, 'http://www.linezing.com/');  
  30. curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');  
  31. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
  32. curl_setopt($ch, CURLOPT_HEADER, 0);    
  33. curl_setopt($ch, CURLOPT_COOKIESESSION,1);  
  34. curl_exec($ch);    
  35.   
  36. curl_setopt($ch, CURLOPT_URL, 'http://tongji.linezing.com/mystat.html');    
  37. curl_setopt($ch, CURLOPT_COOKIEFILE,$cookiefile);  
  38. curl_setopt($ch, CURLOPT_COOKIEJAR,$cookiefile);  
  39. curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');  
  40. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
  41. curl_setopt($ch, CURLOPT_HEADER, 0);    
  42. curl_setopt($ch, CURLOPT_COOKIESESSION,1);  
  43. $res = curl_exec($ch);  //这里获取返回值,我是想看一下是不是正确。。。  
  44. curl_close($ch);    
  45. echo htmlSpecialChars( $res );  
因为没写什么,所以就注释写的详细了一点

转:智能APP的Banner

这是最近的一个小热点,即在网页的meta里加入一行代码:<meta name="apple-itunes-app" content="app-id=1234567890"/> ,红色区域就是你的APP的ID
不知道,有两个APP的情况下,即加入两条的时候会怎么样?
不过,目前该功能只支持Safari,而且是IOS上的Safari,看来IOS6中,对safari加了好多功能啊。

记录下这个,也是做个笔记。

Tags: ios

soap,又见SOAP

其实,不知道从几年前起,我就不再碰SOAP了,虽然在自己的项目里也悄悄的实现了一个soap。但那是我偷懒,其实我是将我最常用的一些工具封装了一个类,但是其他人需要调用,于是乎我利用soap,直接将这个类发布了,也就相当于实现了soap的一些最常用的方法。果然是个偷懒的好技巧。

提起这个,是最近有一些朋友来问我soap的相关问题,当初我对soap的使用也就是最多在header里做了一个验证。本来phptext.cn(小猪的网站)上有介绍的这篇文章,但后来他的网站好象崩过一次,数据就没有了。在此,我再介绍 一些文章,以前其实也都介绍过:
1、http://rdc.taobao.com/blog/qa/?p=6023
2、http://www.laruence.com/2010/03/26/1365.html
第一篇是淘宝qa团队,教你怎么使用soapUI进行soap接口测试,第二篇是风雪之隅写的关于soap怎么使用soapHeader之类的文章

当然在我以前的博客里也记录过一些创建soap的文章,比如这个:关于SOAP的几篇文章 ,也可以了解一下。
说实话,现在我真的忘了soap了。

Tags: soap

tmp目录下文件过多引发的 血案

tmp目录就是用来存放临时文件的。能引发什么血案?
嗯。当文件过多的时候,啥玩意都写不进,比如 session文件写不进,比如。。。vim打开文件的时候,会创建临时文件,然后也写不进。。问题多多了。
最后,甚至连rm /tmp/*都无法执行:
-bash: /bin/rm: Argument list too long
我晶啊,这样也行??
我想看看是不是session的问题,于是:
root@li408-193:/tmp# ls -l sess_*
-bash: /bin/ls: Argument list too long
我受不了了。。。
最后只能到根目录下面,先rm -rf /tmp/,请注意看最后一个斜杠
root@li408-193:/# rm -rf /tmp/
rm: cannot remove `/tmp': Directory not empty
我晶,这是肿么了。
最后只能rm -rf /tmp
然后mkdir tmp,chmod -R 0777 /tmp
整个世界清静了。。。

Tags: tmp

本周小记

本周其实发生的事情非常 多,所以临时小记一下
1、周一,车被撞,我小转弯,对方调头。OK,对方全责。周二下午请假半天,去车险认定中心鉴定了一下,最终由4S店来定损,周四告诉我定下来了:前保险换掉、前大灯换掉、前雾灯罩换掉、部分车壳修复,周六修理完毕,提车,告诉我是2600元。然后与事主的代理人确定了一下,一手交钱一手交发票。事情完结。
   这件事情我从事学到了很多事情,遇事要先打110,然后如果不是对方全责,那还得再向保险公司报案,然后与对方约定时间去定损,定损有两种,一种是当场定,由定损中心来维修,一种是你自己找修理厂修,但要对方同意,防止 对方保险公司不愿意付钱等。最后,取车的时候,最好让对方一起来,由对方当场把钱付掉。以防万一。但我们这次因为对方请的是代理,所以去代理的店中取钱的。

2、budgetVM的问题,累积到本周了。某节点崩溃,所 幸我的linode没有关闭,后来通过google cache和google rss把数据恢复 了回来。幸运啊。所以,如果真的把服务器扔到国外了。要做好两手准备,最好买两个VPS,一个便宜的,一个好一点的。便宜的用来做数据备份(当然,你也可以用dropbox之类的工具备份数据,但这样就不能快速切换了),自此,我还是准备买两个VPS用来处理网站。反正两个加起来也没有linode贵。。。。

3、phpstorm 升级到5.0了,当然这个。。。只是生活中的一些小事。说实话,对于我来说,3.0之后的版本区别就不是特别大了。4.0还有点功能性的大提升,但5.0真的没看到有很多特色。基于java的工具啊。内存消耗那是相当的大。而且,打开只有一行的大文件会卡死。比如 jQuery.min.js这个文件只有几十K,但是因为压缩成了一行,所以,打开的时候会特别耗内存。

4、公司的服务器,家中打开的时候总是走的电信的线路。但其实网通的速度更快,于是用PHP写了一个脚本,做了一个自动替换,当检测到我的IP地址是192.168.1.*的时候,自动替换/etc/hosts中的映射。偷懒了。。。

5、小拔了一次火罐,好象还是有寒气。哎,老了,身体大不如前了,再加上又买了车,估计以后一定要锻炼了,否则会真的走不动路啊

6、本来预计回家上牌的事情被撞车打乱,只能下周回家办理了