我没有消失

潜水了快一个月了,再一次证明了一个道理『不怕神一样的对手,就怕x一样的队友』。当然上周我也做了一次『猪』,给一个小伙伴拖了一下后腿,被小伙伴私底下狂骂。不过我这个『猪一样』的队友不知道会不会给小伙伴带来很严重的后果还不得而知,一切待周一揭晓。忙碌了一个月,身心俱疲。整天提心吊胆的就害怕一些数据出问题,结果事实证明数据必须一定必然果然出了问题,为别人擦屁股擦的真心累。BT搜索站因为精力问题,暂停了一个月了。最近捡起来发现居然生疏了很多,为了暖手写了一个Python下生成自增ID的一段脚本。frompymongoimportConnectiondb=Connection(host='127.0.0.1',port=27017).api_column='au92_comment'printdb.sites.find_and_modify(update={'$inc':{_column:1}},f...

精彩继续

Python搭建BT资源搜索站(五)

通过前面四篇文章,我们已经采集到了N多BT种子,并且已经将种子中包含的一些信息保存在Mongo数据库中,接下来就是如何将Mongo中的数据通过WEB服务器提供给搜索引擎,提供给一些浏览者。即,如何使用Python搭建一个WEB站点了。首先我之前的项目均采用Bottle这个Python框架,这次依然不例外。这个框架的好处只有一个:足够简单。使用Bottle启动一个WebServer是一件非常简单的事,文件保存成app.py:frombottleimportBottle,runapp=Bottle()if__name__=="__main__":#命令行交互模式importsysport=int(sys.argv[1]iflen(sys.argv)>1else8888)run(app,host='0.0.0.0',port=port,reloader=True)当然bottle.py这个...

精彩继续

要怀有敬畏的心

在很多行业(包括但不仅限于IT),当然IT行业最明显,一些『砖家叫兽之流』看到别人的作品时候,第一反应经常是『这破B玩意儿太差了吧,做这的人脑袋被驴踢了?』,在WEB行业但凡一个网站只要砸上『用户体验不行』的帽子一砸一个准。什么人只要掌握了『用户体验不好』这个神器,走哪都是『砖家』,搁哪都是『叫兽』。你还甭还嘴,还嘴就是死倔。『砖家、叫兽』还有一个特点就是觉得你不好使还就用你,360的周鸿祎这个大流氓都敢站起来『创新』已有他觉着不爽的各种产品,专业『批判』的『砖家叫兽』也就过过嘴瘾,连流氓都不如!当然我也干过『砖家叫兽』这个角色,但我深深体会到了装逼这个工种的SB之处,所以我努力不去装逼,不干『专业批判者』这个非人类干的事觉着不爽的地方我大部分会说出来,当然说实话的后果也是不是那么尽如人意的。比如2013皇帝的新装里说点实话就没落好下场,被人肉搜索不说,在那孙子一亩三分地反正是落不了好。随...

精彩继续

Python搭建BT资源搜索站(四)

前文中已经下载到了一些BT种子文件,其实聪明的孩子已经发现我之前写过一篇使用Python将BT种子转换为磁力链接的文章,其中会有一些办法解析BT种子的info信息,然后提取出来转换成磁力链接格式。因为暂时咱们只拿到了一些BT种子文件,所以最简单的方式获取BT文件的信息就是要解析BT种子文件,获取文件本身包含的一些信息。参考之前的文章,我建议是使用python-libtorrent来解析文件,效率高而且通过apt-get方式安装出问题的几率小。因为是Windows下开发,安装包请自行Google下载,本人下载到的版本为python-libtorrent-0.16.10.win32,安装过程一路Next即可。安装完成后就可以参考我之前在Debian环境的代码,轻松的将现有的种子文件转换成磁力链接。除了可以转换成磁力链接外,通过解析一个种子文件咱们可以获取到的信息有:这个种子中包含的文件列表文件...

精彩继续

Python搭建BT资源搜索站(三)

前文中已经用Python将一个从torrage.com上采集下来的文件解析并且保存进了Mongo数据库中,但此时Mongo数据库中仅仅是一些字符串,和咱们期望的BT资源站貌似完全不相关。当然聪明的小伙伴是已经知道torrage.com这个网站就是托管一些BT种子的网站,从网站主页就可以看到可以简单的通过访问『http://torrage.com/torrent/info_hash.torrent』下载一个BT种子。所以再一次祭出requests这个神器,通过遍历之前保存进Mongo中的info_hash来下载BT种子文件。首先,在bt-search目录新建一个文件夹『torrents』用来保存BT种子文件。然后,使用requests抓取torrage的文件并保存到torrents文件夹中,具体代码可以参考我写完的代码:https://gist.github.com/Chairo/63292...

精彩继续

Python搭建BT资源搜索站(二)

处理上文下载的文件前文中从torrage下载了一个info_hash的数据文件下来,但下载的文件仅仅是一个txt文档,需要将这个文档解析成一条一条的数据,保存进咱们的数据库,方便以后的数据库搜索以及一些其他处理。首先,要用Python读取下载下来的文件内容,并且将文件内容保存进数据库中。虽然以前我是坚决抵制使用nosql作为主要的存储工具,但因为公司的项目的核心数据是在Mongodb中存储,之后必然要接触一些Mongo的工作,所以干脆搞一些小项目从头开始方便我熟悉Mongo。读取文件的Python函数如下:defread_data():_file=open('20130820.txt','rb').readlines()for_itemin_file:print_item这个函数就可以简单的将一个txt文件读取出来,并且逐行输出。然后,下载Windows版本的Mongo(个人使用的32位系...

精彩继续

Python搭建BT资源搜索站(一)

任何一门编程语言初学者最难的是不知道如何下手,各种电子书实体书搞到一堆一堆,书中都是从语言的历史、基本语法开始谈起。按照书中的例子都一个一个去实践过了。但做了几百个for循环,几百个print'helloworld',先不说学了后边忘记前边,准备下手做一个项目时候才发现怎么将几百遍for和print组成一个按照自己想法来实现的项目完全没有任何思路……我对于任何编程语言的学习都倾向于做一个实际的小项目作为入门课程。我一直觉着书和手册是会查就可以了,没必要通读一整本书或者翻遍全部手册。安装必备软件python2.7.*,本人使用的32位Python2.7系列,一个是win7当时安装的32位,另外2.7系列第三方插件和教程都多。setuptools-0.6c11.win32-py2.7.exe,配合python的第三方插件requests,从官方github下载的版本(有一阵子了,下载最新版本就...

精彩继续

使用Python给IE设置代理

厂里上个网需要设置代理服务器,切换各种环境『包括但不仅限于开发环境、QA、预上线、验收、生产环境、压力测试、Demo……』都需要给浏览器设置不同的代理服务器。虽然俺有神器Firefox+ChangeHost+HostAdmin+ProxySelector的组合来轻松切换Host,切换浏览器代理,但是…凡是就怕『但是』。但是碰到一些IE才有的bug时候不得不换浏览器啊!!还要开虚拟机进去搞IE6、IE8、360、搜狗这些奇葩浏览器啊!!!有同事建议搞个bat脚本来做这些,但没人肯动手……而且bat能不能实现先不说,重点是咱不熟啊。搞个C#写个winform或者console控制台还需要.NETframework不是,虚拟机装个.NETframework4.0又要很多时间『而且不同的snapshot都要装一遍…』最最重要的,好久不写文章了不是,咱不想在博客里写C#相关的东西不是。所以,操刀Py...

精彩继续

Python将BT种子文件转换为磁力链的两种方法

BT种子文件相对磁力链来说存储不方便,而且在网站上存放BT文件容易引起版权纠纷,而磁力链相对来说则风险小一些。而且很多论坛或者网站限制了文件上传的类型,分享一个BT种子还需要改文件后缀或者压缩一次,其他人需要下载时候还要额外多一步下载种子的操作。所以将BT种子转换为占用空间更小,分享更方便的磁力链还是有挺大好处的。首先一个方案是使用bencode这个插件,通过pip方式安装或者自行下载源文件https://pypi.python.org/pypi/bencode/1.0通过pythonsetup.pyinstall方式安装均可。相应的将BT种子转换为磁力链代码为:importbencode,hashlib,base64,urllibtorrent=open('ubuntu-12.04.2-server-amd64.iso.torrent','rb').read()metadata=benc...

精彩继续

仿Excel冻结窗格效果jQuery插件

半路接手的公司的项目改造有一个表格因为列数太多,超出页面宽度太多,之前的同学搞了一个只兼容IE的冻结N列的脚本。这次改造除了需要冻结前N列,需求中增加了需要冻结首行。类似Excel冻结窗格效果。首先找到了一个jquery.chromatable.jsjQuery插件,但实际使用中表格宽度会莫名其妙的不正常。而且这个插件本身仅仅只有固定表格首行的效果,和需求也不完全一致。因为公司恶劣的网络情况(用代理上网,无法翻墙),仅靠百度搜了一圈,找到一篇jQuery插件:冻结表头(类似Excel的冻结窗格功能)的年代久远的帖子,但是连做demo都不需要就看到仅有的3条评论就有人反馈和jquery.chromatable.js一样,列对不齐。回家后放Google转了一圈,先是找到了jquery.easyui.js这个庞然大物,本来项目中就已经用到了jquery-ui,而我并不想继续用jquery-ui这...

精彩继续