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

采用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 );  
因为没写什么,所以就注释写的详细了一点

转:遗憾最小化框架:杰夫·贝佐斯离职创立Amazon背后的思考办法

看了这篇文章后,对其中的一句话特别感兴趣,原文中有一条下划线,但那不是我有兴趣的。我的兴趣我加红。

我对老板说:“老板,我想做件疯狂的事情,我打算开家公司,在网上卖书。”之前我和他泛泛聊到过这个想法。“走,陪我散散步去。”他对我说。于是, 和他在纽约中央公园逛了两个小时后,他最后对我说:“你这个打算听起来是很靠谱,但这个事情更适合那些眼前没有一份好工作的人去做。” 他的话让我苦思良久。

为了能做好这种重大的决定,我努力寻找正确的思考框架。我也和妻子讨论过这个念头,她对此非常支持:“不论你做什么, 我都百分百支持你。”她嫁给了我这么一个有着稳定职业道路的稳重的家伙,而我现在想去做的事情是如此疯狂,但她却对此百分百支持——这个决定最后还是完全 在于我自己。最后,我找到了一个框架,它能助你轻松做出人生的重大决定,我把它称作“遗憾最小化框架”。

我 把自己想象成80岁的模样,并思考:“现在回望我的一生,我要把遗憾事件的数量降到最低。”我知道在我80岁时,我不会因这次尝试而后悔,我不会后悔参与 到互联网这个我认定是了不起的事情中来。我知道,哪怕我失败了,我也不会遗憾,而我可能会因为没有尝试而最终后悔不已。如果你能想象自己年满八旬,并思考 “老了的我会怎么想呢?”这个问题,你就可以因此而摆脱每日琐碎的困惑的干扰。你要知道,当时我从那家华尔街公司离职创业时恰逢年中,这样连年终分红都没 我的份了。就是这类短期的事情会干扰你的判断,只要你把眼光放得更长远些,你就可以做好生命中的重大决定,而不至于日后后悔了。

via bijansabet.com

http://www.36kr.com/category/digest

转一下:OpenResty

前段时间,老王推荐了一个伪同步的代码,async,可以到github上找到代码:https://github.com/hugozhu/async_php/,其中,有一个lua的目录,是用来为nginx提供插件以担当这个同步功能的一些玩意。
于是冲到nginx上看了一下,NND,没这玩意嘛 .
再一瞅github上,原来还写着:
ngx_lua module - http://openresty.org latest stable release
我晕,那openresty是什么玩意呢?去官方看了看,一大堆英文,但是左侧的支付宝捐赠让我怀疑这应该是个国人的作品。于是找啊找,找了一个中文介绍:

官网: http://openresty.org/
虽然是中国人做的,但没几个汉字.....

我用Nginx,是这样一个过程:
1. 系统rpm中的nginx,能让其跑起来
2. 玩配置文件
3. 玩编译选项
4. 写插件,集成第三方插件

OpenResty , 是淘宝一位大牛(agentzh)集成的包含N多好插件的Nginx捆绑源码包,这位仁兄自称Nginx最活跃的第三方模块开发人员哦

下面,当然要列一下到底集成了什么模块:

LuaJIT -- 极速版Lua实现
ArrayVarNginxModule -- 数组类型的Nginx变量
AuthRequestNginxModule -- 鉴权,想象一下以C代码的速度判断一个请求是否合法,是不是很有快感呢?!
DrizzleNginxModule -- -MySQL桥,非阻塞的哦,我又爱又恨的一个模块,值得注意的是,其响应是RDS流
EchoNginxModule -- 以非常直观的方式在Nginx配置文件中编写简单的处理逻辑,源码包含大量注释,绝对是入门好例子!!
EncryptedSessionNginxModule -- 加密会话
FormInputNginxModule -- 解析post请求中的参数,这下子,简单请求根本不需要PHP/Java来处理啦
HeadersMoreNginxModule -- Nginx默认的header模块只能添加或忽略,这个给你CRUD全套的!!
IconvNginxModule -- 编码转换,不多说,也不懂
StandardLuaInterpreter -- 与Lua官方实现所匹配,一般用不上,因为我们用LuaJIT!!
MemcNginxModule -- 与Memcached的绝配,谁用谁知道!! 与upstram_keepalive一起用,你能更High!!
Nginx
NginxDevelKit -- N多第三方插件都依赖的东西,不知道为啥
LuaCjsonLibrary -- Lua版的Json处理库实在太慢,这个才叫速度!!
LuaNginxModule -- 我的最爱,一般逻辑,完全没必要用Java/PHP啦
LuaRdsParserLibrary -- 在Lua中直接处理RDS流,速度杠杠的!
LuaRedisParserLibrary -- 在Lua中处理Redia模块的响应,暂时我还没用上
PostgresNginxModule -- Nginx-Postgres桥,输出的也是RDS流
RdsCsvNginxModule -- RDS流转CVS格式,不知道能干啥,报表?
RdsJsonNginxModule -- RDS流转JSON字符串,之前经常用这个
Redis2NginxModule -- Nginx-Redis2桥
SetMiscNginxModule -- 提供很多很实用的方法,例如base64编解码,URL编解码,SQL防注入等等
SrcacheNginxModule -- 缓存模块,据说跟Memc模块一起用比较爽
UpstreamKeepaliveNginxModule -- 与Memc模块的标配,号称性能提升几倍呢
XssNginxModule -- 防跨站攻击的

OpenResty的最大的好处是帮你弄清楚各个模块的编译顺序,别小看,学问大大的呢

当初没有这东西,单单弄清楚模块间的编译顺序就耗费不少时间

来吧,试试这个国产的精品!!
-------EOF--------
以上这段内容来自:http://wendal.net/338.html
值得看看哦。可以尝试用lua写插件

Tags: nginx, openresty, github

怎样吸引用户

很简单的几个想法,也只是我个人的见解没有其他意义,请不要深究

1、有内容,至于这个内容是什么样的,仁者见仁,毕竟每个人的爱好都不一样,是想要小众还是大众,得看产品定位,但切不可乱,一乱就麻烦了

2、有争议,如果没有争议,只是平庸,终究很快就被人淡忘

3、有品味,这个品味不一定是指内容高雅,也许是设计,也许是操作也许是其他

4、有手感,如果网站(APP)的操作没有流畅度可言,也是不会留住用户的

5、有互动,这就不多说了,SNS就是最大的互动,但怎么样算是做好,就难说了。。。

6、有深度,不管是内容还是品味,还是其他,要有深度,太肤浅的东西,或者刚开始有兴趣,但不会让用户有停留

7、有更新,不一定是说内容更新要快,也可能是网站(APP)经常会有一些小亮点,这点对于升级控来说很重要,即使不是升级控,或许多一个贴心的小功能也会让人很开心,增加粘度。

其实还有不少,但不想说了,反正说白了,要多为别人考虑,同时也要将自身代入,试想,如果是你看到这个网站或者APP,你会怎么看待它,等这个做好了就完满了。

让CRONTAB精确到秒的执行任务

众所周知,crontab的最小粒度是分,即当第一位是“*/1”时,即最小单位是每分钟执行。
但是,有时候我们要按秒执行,当然这是比较夸张的了,但每半分钟执行一次还是有可能的,这时候就没有办法了,所以后 来 找啊找,就找到了一篇说明:

XML/HTML代码
  1. */1 * * * * sh /root/cron.sh  
  2. */1 * * * * sleep 30 && sh /root/cron.sh  

执行的时候先sleep 30秒,变相的达到每半分钟执行此命令,果然很变态

windows下面也有模拟crontab的软件,如crontabs,pycrontab等,都是注册成一个服务,然后再执行,但是没有一个软件是比较好用的。总有小问题。

Tags: crontab