免费爬墙网站项目(ShadowSocksShare)开发简记

  今年(2017)年暑假,我本科刚刚毕业,保研到本校读研。这个暑假,跟同实验室的师兄聊天的时候聊到爬虫,起了一点兴趣,就做了一个小项目玩了玩,从某些网站爬到了一些漫画看。同样是这个夏天,本来我的首席上谷歌方法(Hosts)失效了,迫使我到处寻找其他免费、不限量科学上网方法,最终选定使用SSR。

  最开始,我写了一个Python脚本,使用qrcode库,可以将网上爬到的ss帐号变成二维码,这样就不需要手动输入服务器信息了,真的很方便。可是好东西只有我自己用,心里过意不去,便想了好多方法来分享我找到的帐号,以便大家都能顺利地访问谷歌。最开始打算用微信公众号自动分享,或者用微信小程序。在一个周末,我便申请了微信开发平台,创建了一个微信公众号。看官方教程发现微信小程序需要用到javascript,而使用微信公众号自动发布新爬到的ss帐号需要web服务器。后来一想,既然js和web我都不会,那我还是学着做一个网站比较好,不必依托于微信。

  说到做到,在某个周日下午,我阅读Flask文档和W3CSchools的HTML教程,以及网上Flask的例子,做出了本项目的最初版本。后来,为了寻找免费服务器托管我的项目,我先后找到了OpenShift和Heroku,并学习了一下两家服务器的使用管理方法,将网站托管到了OpenShift,加入了许多其他网站(因为最初的那个网站加入了反爬措施,我暂时不想用太多精力处理反爬)。为了处理一些难以定位的Bug,和一些莫名其妙的异常,我使用了大量try(当然这并不是一个良好的方案)和logging输出日志,通过阅读日志定位并解决掉了服务器稳定性的问题。当访问量增加,我又学着用了一下多线程threading和并发爬取数据multiprocessing,重构代码,以及最后稍微学习了一点点shadowsocks的源码。

  看到自己GitHub加星我心里很是高兴,毕竟是第一个比较受关注的项目;网站上加了个捐款链接也只是放着玩,没想到还真有不少人捐款,哈哈:)知道有这么多人使用我的小项目,我也使用了大量时间进行维护、改Bug、增加功能、改进UI。收获是对html和javascript熟悉了不少,后来做数据分析需要调用百度地图API之类的就比较轻松了:)建站的时候也有了不少收获,理解了用户、性能、运维、ssl、CDN、代码风格、项目的文件安排等等需要实践才能有所理解的概念,有了一个从0到1的过程。

  现在本项目比较完善了,以后不会需要太多维护,主要精力也将放在学习和科研上。当然,如果筹集到足够多的捐款,我也会尝试着用捐款搭梯子回馈大家:)

评论

  1. Google Plus 关停后所有的评论都没了

    回复删除
  2. 非常感谢能够不断维护下去!

    回复删除
  3. Additional Synthetic Urine Storage Tips: • Storage temperature: Always store in a cool and dry place while ensuring you never leave it exposed to sunlight. If you fail to do so, its pH value may alter, leading to the fake pee going real bad. Therefore, the best way to go about this is to keep the urine bottle in your fridge. • Care: Did you know, synthesized urine deteriorates rather quickly when it comes in contact with oxygen? Therefore, make sure to break the seal open only when you need to use it. The thing is, the more fat you have in your body, the harder those cannabinoids stick to you. That’s why strenuous physical exercise helps in not only burning all those flabs away, but the cannabinoids too, making the THC come out of your pores. Visit: https://www.urineworld.com/

    回复删除

发表评论

此博客中的热门博文

Flash被淘汰后打开swf文件的最佳方法

[SOLVED] Supermicro cannot connect to VGA video port or iKVM

MacBook日文键盘四种输入模式输入法切换(同样适用于其他布局的键盘)