相信中文字符编码问题每个程序员都或多或少遇到过,文件读写、网页抓取、数据库等等,凡是有中文的地方总会出现各种的编码问题,但是很少有人愿意花时间去彻底弄清这个问题(至少我以前是这样),每次出现乱码问题的时候上网一搜,不能解决的一愁莫展,能够解决的也不知其所以然。
最近在学习Python
的过程中再次遇到了这个问题,决定认认真真把编码问题搞清楚,同时也把经验和心得分享给大家。如有谬误,欢迎大家批评指正~
最近用Python
非常多,确实感受到了Python
的强大与便利。但同时我并没有相见恨晚的感觉,相反我很庆幸自己没有太早接触到Python
,而是基本按着C
→C++
→Java
→Python
这条路学习下来的,因为过早使用太便利的方法有可能使你对底层细节一无所知。
现在我对HTTP协议的了解完全要归功于当初用Java
写爬虫时遇到的各种问题,如果我很早就开始使用Python
的urllib2
或者requests
,那么我现在对HTTP协议的认识可能依然非常肤浅。
友情提醒:本文的方法依然能用……不过依然请大家关注我的新文章另类新浪微博基本数据采集方法,有新方法采集新浪数据~
一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过……
当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~
应该是今年的早些时候,新浪引入了一个Sina Visitor System(新浪访客系统),也不知道是为了提高用户体验还是为了反爬虫,或许是兼而有之。实际结果就是,爬虫取回来的页面全部变成Sina Visitor System了
Premature optimization is the root of all evil(过早的优化是万恶之源)
学计算机的小伙伴们一定对Donald Knuth老先生的这句话不陌生,而且过去常常以此来为自己的懒惰开脱=。=但是请注意,Donald Knuth说的是过早的优化,而不指所有的优化都是没有必要的,一个完美的系统是在不断完善和优化的过程中成长起来的。
本人认为优化有三个层次:
最近读到一篇老外的文章《Visualizing Algorithms》,表示被里面各种算法炫酷的展示亮瞎了眼,一时冲动决定要将这篇文章翻译成中文,但是由于原文较长而且很文艺(我会告诉你们是我的英语太渣了么-_-),我打算以解读的形式来展示原文而并非翻译,如果感兴趣可以直接看原版。最后我会整合其他一些算法可视化的素材。好了,闲话不多说,Let’s begin~