微信公共平台与正则表达式

这个是一个用微信平台和sinaapp搭建的应用,这段程序是在1年前写的,用的是正则表达式去douban和mtime这两个电影网站爬了一些数据,后台放在
sina的app上,主要就是去分析这两个网站中html页面,然后写相对应的正则表达式。其实很无脑,基本上就是看一张html,写几个正则表达式就好了。
那说到正则表达式,可能很多人都听过,而且我们也一直在用这个技术,就算编译代码对代码中你写的变量名是否合法可以进行分析。例如C++的变量
名不允许以数字开通,也不允许某些奇奇怪怪的符号,那可以写成 word=[a-z]*[a-z|0-9]*(只是举个简单的例子)。所以需要识别这个正则表达式就需要状态机,状态机用的很广泛,可以对某些复杂逻辑的程序进行简化,网络协议中TCP就需要专门的状态机进行描述,不然大家都会晕了。状态机就是一个状
态迁移的概念,比如我们有一个变量叫做”ab3 “, 状态机初始为0状态,然后扫描”ab3 “,当读到a时,相当识别一个[a-z]字符,状态可以迁移到0(这里为
什么还是0状态的原因,后面会讲),识别b,还是0状态,识别3还是0状态,识别“ ”迁移到1状态(结束状态),完成了识别。
------------------------------------------------
那么正则表达式可以有3类:
顺序类:abc
循环类:[a-z]*
分支类:a|b
----------------------------------------
其实也就对应了3种状态机的节点
顺序类识别: 0->1->2
循环类识别: 0->0 (这就是之前状态为什么还为0的原因)
分支类识别: 0->1;0->2
-----------------------------------------------
最后写过程序的同学会发现,大部分程序,c/c++,java,php,js,python.....都只有是写3种语句
循环
分支
顺序
----------------------------------------------
写了这么多年的同学是不是写厌倦了么。。。。。所以大部分程序员有n年
开发经验的也应该只写过这3种语言!那为什么只要这3种结构就可以搞定你的工作呢?这个问题dij(计算机科学家,这里的科学家和某些科学家
不是一个概念,不一样的地方自己脑补)讨论过,wikipedia上可以看看: http://en.wikipedia.org/wiki/Structured_programming
相当与是同构的概念。
-----------------------------------------------
了解了上面的工作后,后续的任务就很简单了,我用python的regx,也就是看一张html写几个正则表达式,图片url,题目等信息爬下来
后存到sinaapp的mysql,不需要建什么索引,直接搞定。其实最有创新的是微信平台的名字“幕微”,如此有想象力的名字是我们宿舍的
同学想的,我觉的他的名字顶我学了1年的知识。
------------------------------------------------
微信公共帐号:Movie_Studio
二维码看这里:http://moviestudio2.sinaapp.com/
还有一个罗嗦一下,大家爬网站不要太狠,一次发太多get请求会被查封的,你看上面为什么是moviestudio2你就明白了
因为moviestudio.sinaapp.com 豆瓣已经禁止我们访问了。
-----------------------------------------------------

接下来上图和上代码:



代码:https://github.com/NanYoMy/movie_studio

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值