于是琢磨有没有一个学习python的app

Python爬取APP下载链接的实现方法
作者:CaptainXero
字体:[ ] 类型:转载 时间:
这篇文章主要实现的是批量下载安卓APP。显然用手点是不科学的。于是尝试用Python写了一个半自动化的脚本。所谓半自动化,就是把下载链接批量抓取下来,然后一起贴到迅雷里进行下载,这样可以快速批量下载。有需要的朋友们可以一起看看吧。
首先是准备工作
Python 2.7.11:
其中python2和python3目前同步发行,我这里使用的是python2作为环境。Pycharm是一款比较高效的Python IDE,但是需要付费。
实现的基本思路
首先我们的目标网站:
点击【应用】,进入我们的关键页面:
跳转到应用界面后我们需要关注三个地方,下图红色方框标出:
首先关注地址栏的URL,再关注免费下载按钮,然后关注底端的翻页选项。点击“免费下载”按钮就会立即下载相应的APP,所以我们的思路就是拿到这个点击下载的连接,就可以直接下载APP了。
第一个需要解决的点:我们怎么拿到上面说的下载链接?这里不得不介绍下浏览器展示网页的基本原理。说简单点,浏览器是一个类似解析器的工具,它得到HTML等代码的时候会按照相应的规则解析渲染,从而我们能够看到页面。
这里我使用的是谷歌浏览器,对着页面右键,点击“检查”,可以看到网页原本的HTML代码:
看到眼花缭乱的HTML代码不用着急,谷歌浏览器的审查元素有一个好用的小功能,可以帮我们定位页面控件对应的HTML代码
如上图所示,点击上方矩形框中的小箭头,点击页面对应的位置,在右边的HTML代码中就会自动定位并高亮。
接下来我们定位到下载按钮对应的HTML代码:
可以看到按钮对应的代码中,存在相应的下载链接:【/appdown/com.tecent.mm】,加上前缀,完整的下载链接就是 http://apk.hiapk.com/appdown/com.tecent.mm
首先使用python拿到整个页面的HTML,很简单,使用“requests.get(url) ” ,url填入相应网址即可。
接着,在抓取页面关键信息的时候,采取“先抓大、再抓小”的思路。可以看到一个页面有10个APP,在HTML代码中对应10个item:
而每个 li 标签中,又包含各自APP的各个属性(名称、下载链接等)。所以第一步,我们将这10个 li 标签提取出来:
def geteveryapp(self,source):
everyapp = re.findall('(&li class="list_item".*?&/li&)',source,re.S)
#everyapp2 = re.findall('(&div class="button_bg button_1 right_mt"&.*?&/div&)',everyapp,re.S)
return everyapp
这里用到了简单的正则表达式知识
提取 li 标签中的下载链接:
def getinfo(self,eachclass):
str1 = str(re.search('&a href="(.*?)"&', eachclass).group(0))
app_url = re.search('"(.*?)"', str1).group(1)
appdown_url = app_url.replace('appinfo', 'appdown')
info['app_url'] = appdown_url
print appdown_url
return info
接下来需要说的难点是翻页,点击下方的翻页按钮后我们可以看到地址栏发生了如下变化:
豁然开朗,我们可以在每次的请求中替换URL中对应的id值实现翻页。
def changepage(self,url,total_page):
now_page = int(re.search('pi=(\d)', url).group(1))
page_group = []
for i in range(now_page,total_page+1):
link = re.sub('pi=\d','pi=%s'%i,url,re.S)
page_group.append(link)
return page_group
关键位置说完了,我们先看下最后爬虫的效果:
在TXT文件中保存结果如下:
直接复制进迅雷就可以批量高速下载了。
附上全部代码
#-*_coding:utf8-*-
import requests
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
class spider(object):
def __init__(self):
print u'开始爬取内容'
def getsource(self,url):
html = requests.get(url)
return html.text
def changepage(self,url,total_page):
now_page = int(re.search('pi=(\d)', url).group(1))
page_group = []
for i in range(now_page,total_page+1):
link = re.sub('pi=\d','pi=%s'%i,url,re.S)
page_group.append(link)
return page_group
def geteveryapp(self,source):
everyapp = re.findall('(&li class="list_item".*?&/li&)',source,re.S)
return everyapp
def getinfo(self,eachclass):
str1 = str(re.search('&a href="(.*?)"&', eachclass).group(0))
app_url = re.search('"(.*?)"', str1).group(1)
appdown_url = app_url.replace('appinfo', 'appdown')
info['app_url'] = appdown_url
print appdown_url
return info
def saveinfo(self,classinfo):
f = open('info.txt','a')
str2 = "http://apk.hiapk.com"
for each in classinfo:
f.write(str2)
f.writelines(each['app_url'] + '\n')
if __name__ == '__main__':
appinfo = []
url = 'http://apk.hiapk.com/apps/MediaAndVideo?sort=5&pi=1'
appurl = spider()
all_links = appurl.changepage(url, 5)
for link in all_links:
print u'正在处理页面' + link
html = appurl.getsource(link)
every_app = appurl.geteveryapp(html)
for each in every_app:
info = appurl.getinfo(each)
appinfo.append(info)
appurl.saveinfo(appinfo)
选取的目标网页相对结构清晰简单,这是一个比较基本的爬虫。代码写的比较乱请见谅,以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有问题大家可以留言交流。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Python 有没有站到风口上? – 码农头条
& Python 有没有站到风口上? 相关推荐:Python 2.6 升级至 Python 2.7 的实践心得 前言 CentOS 6.8 安装 Python [&]...Python-mode:在 Vim 编辑器中开发 Python 应用的 Vim 插件 & 译者:u [&]...《解释 Python 2 和 Python 3 的版本之间差别》Python 的用户基础不断增长,这为 Pyt [&]...Python 是慢,但我无所谓 为牺牲性能追求生产率而呐喊 让我从关于 Python 中的 asyncio 这 [&]...学习 Python 2 还是 Python 3,我想对大家粗暴一次 by 赖明星 学习Python 2还是Py [&]...用 Python 实现每秒处理 120 万次 HTTP 请求 原文链接 用 Python 做到每秒处理上百万次 [&]...改善 Python 程序的 91 个建议(一) 学习笔记一:《编写高质量代码 改善 Python 程序的 91 [&]...你为什么学不好 Python? 今年带了一个 Python 班,收获不少,对自己新的教学方法进行了实践,同学们 [&]...基于 Python 的简单自然语言处理实践基于 Python 的简单自然语言处理实践 从属于笔者的 程序猿的数 [&]...【通过网络图片小爬虫对比 Python 中单线程与多线(进)程的效率】在这篇阐述 Python 并发与并行编程 [&]... 今日推荐猜你喜欢
& Python 有没有站到风口上?使用python写一个安卓APP
Python Django App开发相关创建一个简易的Django App
新建一个apppython manage.py startapp yourappname
新建一些目录,使该app拥有以下...
Django是一个非常流行的用python编写的Web框架,在使用Django之前,我们需要了解一些基本的概念,这样可以在使用Django的时候对其有一个更加深入的把握。本文主要介绍Django中两个...
1.创建你的第一个project:
本文翻译自https://docs.djangoproject.com/en/1.6/intro/tutorial01/
本机环境:
操作系统:Ubuntu12.04
python2....
Python学习笔记(Django篇)——3、创建第一个数据库模型
Django里面集成了SQLite的数据库,对于初期研究来说,可以用这个学习。
第一步,创建数据库就涉及到建表等一系列...
(一)创建数据库
在blog 文件下的models.py 内创建数据库
from django.db import models
class Article(models.Model):
如何创建一个博客页面
1.pycharm,new project,django,项目名设为myblog
2.Tools,Run manage.py Task…
3.在下面输入startapp b...
自定义admin表单
这足以让我们惊讶好几分钟,所有的代码我们都不需要写。
当我们调用admin.site.register(Poll)时,Django只让你编辑这个对象并”推测“怎么把它显示在管...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Python之美Python之美发现Python之美,主要针对Web开发、Python进阶等关注专栏更多置顶文章最新文章{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&title&:&UserDict、UserString、UserList存在的意义&,&author&:&dongweiming&,&content&:&\u003Cp\u003E最近遇到了一个继承Python内建结构的坑儿和大家分享下。从Python 2.2开始,Python支持继承Python内建结构,如list、dict。最近在实现一个功能,为了简化内容,我直接继承了dict,但是结果和预期不一样。举个例子:\u003C\u002Fp\u003E\u003Ccode lang=\&python\&\u003EIn : class NewDict(dict):\n...:
def __getitem__(self, key):\n...:
return 42\n...:
\nIn : d = NewDict(a=1)\nIn : d\nOut: {'a': 42}\nIn : d2 = {}\nIn : d2.update(d)\nIn : d2\nOut: {'a': 1}\u003C\u002Fcode\u003E\u003Cp\u003E也就是说NewDict的__getitem__方法被dict.update给忽略了。这让我很惊讶,我之前用UserDict的时候是正常的(这次为啥直接用dict也不知道抽了什么筋):\u003C\u002Fp\u003E\u003Ccode lang=\&text\&\u003EIn : from UserDict import UserDict\n\nIn : class NewDict(UserDict):\n...:
def __getitem__(self, key):\n...:
return 42\n...:
\n\nIn : d = NewDict(a=1)\nIn : d['b'] =2 \nIn : d\nOut: {'a': 1, 'b': 2}\nIn : d['b']\nOut: 42\nIn : d2 = {}\nIn : d2.update(d)\nIn : d2\nOut: {'a': 42, 'b': 42}\n\u003C\u002Fcode\u003E\u003Cp\u003E这才是对的呀。所以我开始研究找答案。后来在PyPy的文档中发现了\u003Ca href=\&http:\u002F\u002Fpypy.readthedocs.io\u002Fen\u002Flatest\u002Fcpython_differences.html#subclasses-of-built-in-types\& data-editable=\&true\& data-title=\&原因\& class=\&\&\u003E原因\u003C\u002Fa\u003E,也就是这种C实现的结构的内建方法大部分会忽略重载的那个方法。\u003C\u002Fp\u003E\u003Cp\u003E之前我以为UserDict这样的类是历史遗留问题,现在才知道是有原因的。原来UserDict、UserString、UserList这样的模块是非常必要的。\u003C\u002Fp\u003E\u003Cp\u003E无耻的广告:\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&\& data-editable=\&true\& data-title=\&《Python Web开发实战》上市了!\&\u003E《Python Web开发实战》上市了!\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E欢迎关注本人的微信公众号获取更多Python相关的内容(也可以直接搜索「Python之美」):\u003C\u002Fb\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cimg src=\&v2-1cc7bd405282afd75e90f54.jpg\& data-rawwidth=\&300\& data-rawheight=\&300\&\u003E\u003C\u002Fp\u003E&,&updated&:new Date(&T10:24:34.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:5,&likeCount&:16,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T18:24:34+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-dac65a7ccb82bd1de67496_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:5,&likesCount&:16},&&:{&title&:&Python __slots__ 详解&,&author&:&dongweiming&,&content&:&Python老鸟都应该看过那篇非常有吸引力的 \u003Ca href=\&http:\u002F\u002Ftech.oyster.com\u002Fsave-ram-with-python-slots\u002F\& data-editable=\&true\& data-title=\&Saving 9 GB of RAM with Python’s __slots__\& class=\&\&\u003ESaving 9 GB of RAM with Python’s __slots__\u003C\u002Fa\u003E 文章,作者使用了__slots__让内存占用从25.5GB降到了16.2GB。在当时来说,这相当于用一个非常简单的方式就降低了30%的内存使用,着实惊人。作者并没有提到他的业务特点和代码,那我们就基于《fluent python》中的例子来验证下是不是有这么厉害:\u003Ccode lang=\&text\&\u003Efrom __future__ import print_function\nimport resource\n\n\nclass A(object):\n
def __init__(self):\n
self.a = 'string'\n
self.b = 10\n
self.c = True\n\n\nclass B(object):\n
__slots__ = ['a', 'b', 'c']\n
def __init__(self):\n
self.a = 'string'\n
self.b = 10\n
self.c = True\n\n\ndef test(cls):\n
mem_init = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss\n
for i in range(500000):\n
l.append(cls())\n
mem_final = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss\n
print('Class: {}:\\n'.format(getattr(cls, '__name__')))\n
print('Initial RAM usage: {:14,}'.format(mem_init))\n
print('
Final RAM usage: {:14,}'.format(mem_final))\n
print('-' * 20)\n\n\nif __name__ == '__main__':\n
import sys\n
test(globals()[sys.argv[1].upper()])\n\u003C\u002Fcode\u003E\u003Cp\u003E我们分别跑一下这2个类:\u003C\u002Fp\u003E\u003Ccode lang=\&python\&\u003E? python mem_test.py a\nClass: A:\n\nInitial RAM usage:
4,890,624\n
Final RAM usage:
200,454,144\n--------------------\n\n? python mem_test.py b\nClass: B:\n\nInitial RAM usage:
4,919,296\n
Final RAM usage:
60,235,776\n\u003C\u002Fcode\u003E\u003Cp\u003E2种方法初始内存略有差别,但是由于这个差别和总内存量相比太小而忽略不计,结论就是:\u003C\u002Fp\u003E\u003Cblockquote\u003E使用slots可以让内存使用减少3.5倍!!# 通过 (200 - 4) \u002F ((60 - 4) * 1.0) 计算得来\u003C\u002Fblockquote\u003E\u003Cp\u003E那么用slot就是非非常那个有必要吗?事实上500000个实例这种机会非常少见,\u003Cb\u003E用不用完全根据业务来决定,并不要以偏概全\u003C\u002Fb\u003E。因为(\u003Cb\u003E敲黑板了哈)\u003C\u002Fb\u003E使用__slots__也是有副作用的:\u003C\u002Fp\u003E\u003Ccode lang=\&text\&\u003E1. 每个继承的子类都要重新定义一遍__slots__\n2. 实例只能包含哪些在__slots__定义的属性,这对写程序的灵活性有影响,比如你由于某个原因新网给instance设置一个新的属性,比如instance.a = 1, 但是由于a不在__slots__里面就直接报错了,你得不断地去修改__slots__或者用其他方法迂回的解决\n3. 实例不能有弱引用(weakref)目标,否则要记得把__weakref__放进__slots__\u003C\u002Fcode\u003E\u003Cp\u003E第三点有点难理解,我写个例子看看吧:\u003C\u002Fp\u003E\u003Ccode lang=\&python\&\u003EIn [2]: %pycat ref_example.py \nfrom weakref import ref\n\nclass A(object):\n
__slots__ = ['b']\n
def __init__(self):\n
self.b = 1\n\n\nclass B(object):\n
__slots__ = ['b', '__weakref__']\n
def __init__(self):\n
self.b = 1\n\nIn [3]: from ref_example import *\n\nIn [4]: a = A()\n\nIn [5]: r = ref(a)\n---------------------------------------------------------------------------\nTypeError
Traceback (most recent call last)\n&ipython-input-6-75a6d689c8b3& in &module&()\n----& 1 r = ref(a)\n\nTypeError: cannot create weak reference to 'A' object\n\nIn [6]: b = B()\n\nIn [7]: r = ref(b)\n\nIn [8]: r\nOut[8]: &weakref at 0x; to 'B' at 0x&\u003C\u002Fcode\u003E\u003Cp\u003E所以实例不超过万级别的类,__slots__是不太值得使用的。\u003C\u002Fp\u003E\u003Cp\u003EPS:《fluent python》比我狠,说的是小于百万级别实例不值得使用。\u003C\u002Fp\u003E\u003Cp\u003E无耻的广告:\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&\& data-editable=\&true\& data-title=\&《Python Web开发实战》上市了!\&\u003E《Python Web开发实战》上市了!\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E欢迎关注本人的微信公众号获取更多Python相关的内容(也可以直接搜索「Python之美」):\u003C\u002Fb\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cimg src=\&v2-1cc7bd405282afd75e90f54.jpg\& data-rawwidth=\&300\& data-rawheight=\&300\&\u003E\u003C\u002Fp\u003E&,&updated&:new Date(&T10:27:08.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:5,&likeCount&:88,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T18:27:08+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-e1a5cb58dcf5b6c4a3f22_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:5,&likesCount&:88},&&:{&title&:&回应「如何评价《python web开发实战》?」的评价&,&author&:&dongweiming&,&content&:&\u003Cp\u003E这篇文章是「洗地」帖。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E知乎上有一个问题 \u003Ca href=\&https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F\& data-editable=\&true\& data-title=\&如何评价《python web开发实战》?\& class=\&\&\u003E如何评价《python web开发实战》?\u003C\u002Fa\u003E感谢几位同学邀请,现在距离出版已经半年了,今天突然想起来回应下这个回答,发现想说的还挺多,直接写一篇专栏吧。\u003C\u002Fp\u003E\u003Cp\u003E我先说一个「\u003Cb\u003E为什么给人没有太多实战的感觉」\u003C\u002Fb\u003E的问题吧。我这本书借着「豆瓣」这个title出版,相信很多人对其中豆瓣相关的内容都很关注,最后可能会比较失望,因为比较少的介绍到豆瓣自己造的轮子。另外我给其他关于「实战」书被如此吐槽的也洗个地。这部分解释在我之前公众号文章中有提到:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cblockquote\u003E\u003Cp\u003E我刚工作的时候特别愿意混各种技术会议和活动。经常有一些专家在上面讲:我们自己实现了一个XXX,它有如下多的特性,现在支持了多少个产品线的多少个应用,每天的数据量YY PB,流量ZZ...\u003C\u002Fp\u003E\u003Cp\u003E通篇在讲架构,摆几张高大上的图,甚至能说几个大家不了解的新的玩法都很少,还不断的问坐在下面的领导或者法务:额,这个我能说嘛;那个我能分享么?最最重要的是,他们讲的这些东西大多不是开源的.... 也基本没有一个可以拿得出手的论文,甚至说白了,如果你正好专注这一部分,会发现它也是根据了FLAG公司的论文在造轮子罢了,说不定造的还不如你。\u003C\u002Fp\u003E\u003Cp\u003E听过之后,也没有收获,都是「别人家」的,甚至有种炫耀的感觉而已,至于有什么苦可能只有他们自己知道吧。我就越来越不愿意参加这种会议了。\u003C\u002Fp\u003E\u003Cp\u003E写书或者博客也是这样。一切东西脱离了公司能提供的基础设施和环境都是空谈,但是这些铺垫说起来就太大了,先不讨论公司有没有授权你在外面说,就是没开源这点就不好弄。说的人都是在虚化的讲一大坨的东西,最多来几个截图之类的(应该还打了马赛克)。等这一大坨东西说的让大家明白了,一本书的厚度肯定不够。但是这些内容呢,只是你为了写书的某一(几)章做铺垫而已,有些内容太专太偏,读者大部分场景下是用不到的,好吧,又得骂娘说你这本书不实用...\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E回答正题,按着目前的回答顺序开始:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cblockquote\u003E\u003Cp\u003E匿名用户:跳跃性很大,感觉吧,作者是想把他毕生经验写在这本书里,所以覆盖面很广。但是又都不精。\u003C\u002Fp\u003E\u003Cp\u003E作者定位有点模糊。这本书如果是面向初学者,那不如《Python核心编程》《flask web开发实战》,如果是面向有经验的开发者,又不如Python cookbook。 \u003C\u002Fp\u003E看看目录就好了。比如他会介绍什么时候用什么包,用什么库。但是他介绍的未必详细。你看到那些包名,去网上搜官方文档自己看看就好了。\u003C\u002Fblockquote\u003E\u003Cp\u003EA: 不知道大学时候老师给划考试重点的美好日子是否还记得? 等你工作了,发现不太容易有人给你给你指明一条路,一切要靠自己,先不说走错了,走的不是最近那条路或者在路口徘徊要多花费多少时间和精力,我一本书告诉你目前现在的主流,告诉你在什么时候该用什么?是不是有点老师划重点的感觉?我觉得 \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F3db5023cdbb51\& data-hash=\&3db5023cdbb51\& class=\&member_mention\& data-editable=\&true\& data-title=\&@李粤强\& data-hovercard=\&p$b$3db5023cdbb51\&\u003E@李粤强\u003C\u002Fa\u003E 一句话说的很好:\u003C\u002Fp\u003E\u003Cblockquote\u003E没有一定项目经验的,是写不出这样子的书的;没有一点项目经验的,也是读不懂这样子的书的。\u003C\u002Fblockquote\u003E\u003Cp\u003E各位扪心自问,不买书,只看我目录列出来的那些东西你就能学好了么?看看README,参与下tutorial写个hello world级别的例子就算行了?你就知道什么时候怎么用了?那考研培训还有什么市场?\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E如果说定位,我觉得你的对比体不对,你说的初级或者高级那是Python语言尤其是语法而言,\u003Cb\u003EWeb开发是一项设计非常广领域的职业,哪怕加上Python这个限定词。\u003C\u002Fb\u003E现在世界上有那本书说自己是Web开发初级或者高级的书?书,只能是某个很细分的领域?而我这本书的目的是让读者了解一下web开发及其周边,这个看目录就知道了。里面的每章甚至每节我都可以写成一本厚厚的书,那么按你的非黑即白的理论,只能是初级了,好吧,和《Python核心编程》《flask web开发实战》这种专门讲Python语法和flask的书比,我要讲的东西很多,页数就那点,你觉得我怎么能实现对每个技能点都讲到那样详细的程度?\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cblockquote\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F41cbb58e318ad6b8bbbaa90c0f644142\& data-hash=\&41cbb58e318ad6b8bbbaa90c0f644142\& class=\&member_mention\& data-title=\&@老李瘦不下来\& data-editable=\&true\& data-hovercard=\&p$b$41cbb58e318ad6b8bbbaa90c0f644142\&\u003E@老李瘦不下来\u003C\u002Fa\u003E :我觉得《Python web开发实战》适合做为任何一门python web框架官方入门教程之外的补充读物,尽管书里介绍的是Flask,但其实真正跟Flask有关的只有第三第四章。你不能指望通过阅读这样一本书迅速掌握Flask的核心API,或是学会如何从0开始搭建一个轻博客之类的,如果有这样的需求,建议先看Flask官方文档,再看Miguel Grinberg的Flask Web Development或是Mastering Flask。如果已经能用Flask\u002FDjango写一个简单的webapp了,但对web开发的全流程缺乏系统了解的,看这本书还是能学到不少干货的。\u003C\u002Fp\u003E缺点是书价太贵,想要省钱的话,可以按着本书的目录了解一下web开发及其周边的基本概念。然后去书里提到的几个python module,例如celery \u002F gunicorn \u002Fsupervisor \u002F ipython notebook的官网上去看相应的介绍。\u003C\u002Fblockquote\u003E\u003Cp\u003EA:\u003Cb\u003E非常中肯的回答\u003C\u002Fb\u003E。我这本书干不了所有事情,我只是在铺一个蓝图,其中的某些东西真的自己看官方文档,买其他书来深入。我这本书无法覆盖全部,如果我贪心覆盖,必然是4-5k页的样子,就没人买了。我和狗书(Flask Web Development,封面是一只狗)的关系就是互补的,它教你用起来,我来帮助读者了解Flask实现上的一些原理和更多的插件应用。你要知道狗书上的一些插件已经是落伍的东西了,有些是写博客等社交应用才用得到,我的书里面的内容是普适的。最后一点,我的书基于最新Flask版本。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fe03f8d1b4845\& data-hash=\&e03f8d1b4845\& class=\&member_mention\& data-editable=\&true\& data-title=\&@刁民日报\& data-hovercard=\&p$b$e03f8d1b4845\&\u003E@刁民日报\u003C\u002Fa\u003E :知识面比较广,但都点到为止。满书的代码,并没有比官方文档入门介绍深入多少。从目录结构看取名开发实战倒也合适,从内容看不到太多实战的影子。全书最让我惊奇的是定价。 \u003C\u002Fblockquote\u003EA: 我不认同「并没有比官方文档入门介绍深入多少」这句话,有些确实是的,因为它确实不难,而且官网写的非常好,甚至可能我还参与过,具体的可以看 \u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fpython-cn\& data-editable=\&true\& data-title=\&我的开源世界观\& class=\&\&\u003E我的开源世界观\u003C\u002Fa\u003E ,我参与的文档你说我不深入不合适吧?原创就是我。但更多的我不背,我这本书并不是深入介绍XX的一本书,而是在说Web开发这件事,我非揪住那些用da机会很少的细节来炫耀下「你竟然这个都不知道」就好了?另外我至少觉得在Flask 上下文,Flask-login、DebuggedApplication、\u003Cbr\u003ERESTful API、Supervisor、Ansible、Celery、RabbitMQ、PIDL、DPark、数据报表、IPython、Notebook、并发编程、CFFI\u002FCython等方面都介绍的比官方甚至外面其他渠道你看到的要深。另外你说「从内容看不到太多实战的影子」,我在思考你是不是在从事Python Web开发的工作,我写的东西有没有好好的看,因为我觉得你看完应该会在工作上和我有共鸣,甚至能够想起当年和我一样踩过的坑儿那个难忘的过程。然而...\u003Cblockquote\u003E\u003Cp\u003E匿名用户:当时买书完全是冲着作者来的,买来后最大的感觉是:失望。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E从目录应该就能看出来了,通篇罗列概念,没有按照一本书的标准组织内容结构,一会蹦出一个新概念,完全不知道在讲什么。\u003Cbr\u003E\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003EA: 感谢你冲着我来的,相信我在某些方面还是给你「干货」的感觉。我不止听过一个人对我组织这本书有意见,这是我的风格吧。想必你听过看过市面上很多「21天精通XX」、「从入门到精通」这些的看起来让人会产生强烈迷幻作用的书,现在互联网这么浮躁,和这些书给人的误导也是离不开的。如果你希望一本书让你精通,不可能。看过我这篇专栏的同学也千万别买。你完全不知道我在讲什么,我觉得可能因为如下:\u003C\u002Fp\u003E\u003Cp\u003E1. 你是一个Python或者Web开发的初学者。我在序言里面说过,看我的书还是需要一些基础的,对你负担太大,需要你先补齐一些Python语法和相关模块、第三方库(类似IPython、Web框架)的相关知识。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E2. 你完全没有用心,不愿意花时间挨个会深入,只希望一口吃成个胖子。抱歉,这病得治。现在不治,未来这个社会会帮助你长记性。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F3db5023cdbb51\& data-hash=\&3db5023cdbb51\& class=\&member_mention\& data-editable=\&true\& data-title=\&@李粤强\& data-hovercard=\&p$b$3db5023cdbb51\&\u003E@李粤强\u003C\u002Fa\u003E:第一版的印刷,错漏都还是挺多的,但瑕不掩瑜。这不是一本面向初学者的书,而是对python基础比较了解,但没有形成自己的知识体系的人应该读的书。书里介绍了相当多的轮子,也可以说是工具,学到一定程度,人应该找到自己称手的工具,打造或学会使用别人打造的优秀的工具,怎么组合运用一些好的工具。这就是我在此书学到最关键的思想,了解各种轮子,了解各种轮子的适用场景,如何去组合轮子,如何开发轮子的扩展达到优化使用体验的效果...\u003C\u002Fp\u003E\u003Cbr\u003E没有一定项目经验的,是写不出这样子的书的;没有一点项目经验的,也是读不懂这样子的书的。这书更倾向是导读之类的书箱,书里每一两章的内容估计都可以扩展成另一本书,全部凑在一起就是整个web 开发的流程,看完此书(甚至是看完此书的目录),就可以大概了解web 开发的流程是什么,然后自己缺哪补哪吧。介于书中的篇幅,很多话题是点到即止的,想了解更多就自己去挖掘吧。俗话说得好,“师傅领入门,修行靠自己”。这句话就是对此书的高度总结了。\u003C\u002Fblockquote\u003EA: 也是很中肯。我都没法说什么了。\u003Cbr\u003E\u003Cblockquote\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Ff123b00dbd7c3f475ad457f7e98e082d\& data-hash=\&f123b00dbd7c3f475ad457f7e98e082d\& class=\&member_mention\& data-editable=\&true\& data-title=\&@韩雨\& data-hovercard=\&p$b$f123b00dbd7c3f475ad457f7e98e082d\&\u003E@韩雨\u003C\u002Fa\u003E :这本书,充满了豆瓣(知乎)风气,同时很接地气。作者经历丰富,知识面很广,所以想带给大家很多东西,对于新手来说不太合适。\u003Cbr\u003EFlask有两章,并不是本书的重点,而是每一部分都是重点,对于开发的规范化很有帮助。\u003Cbr\u003E另外小白说一句,配图太少了,作者很实诚的用代码铺满了全书。\u003C\u002Fblockquote\u003E\u003Cp\u003EA: 感谢。确实对新手不太合适,我在序言里面说过》,Flask也确实不是本书的重点,我这本书的私心之一就是开发的规范化,被你发现了。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F998cbff23c97da9182f8cb\& data-hash=\&998cbff23c97da9182f8cb\& class=\&member_mention\& data-title=\&@邹扒皮\& data-editable=\&true\& data-hovercard=\&p$b$998cbff23c97da9182f8cb\&\u003E@邹扒皮\u003C\u002Fa\u003E :包教包会不包分配\u003Cbr\u003E在看,看目录觉得很棒,在只看了目录的情况下安利了几个人。\u003C\u002Fp\u003E\u003Cbr\u003E补充下面这段和python高手之路一模一样的:\u003C\u002Fblockquote\u003E\u003Cp\u003EA: 说我目录不错,我就当是褒义了哈(′゜ω。‵)。 哥,你从哪里看一模一样?打包工具就是那几个啊?难道我写书还是挨个找书看看有没有差不多的内容然后故意的删除\u002F添加其中一部分?你这.... \u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fd7dcc74f70c44e68269b43\& data-hash=\&d7dcc74f70c44e68269b43\& class=\&member_mention\& data-editable=\&true\& data-title=\&@尊重\& data-hovercard=\&p$b$d7dcc74f70c44e68269b43\&\u003E@尊重\u003C\u002Fa\u003E:这是广告么?\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F918affd59f138\& data-hash=\&918affd59f138\& class=\&member_mention\& data-editable=\&true\& data-title=\&@李浩宇\& data-hovercard=\&p$b$918affd59f138\&\u003E@李浩宇\u003C\u002Fa\u003E: 这本书最近做了那么多广告啊…\u003C\u002Fblockquote\u003E\u003Cp\u003EA: 我觉得「\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fd7dcc74f70c44e68269b43\& data-hash=\&d7dcc74f70c44e68269b43\& class=\&member_mention\& data-editable=\&true\& data-title=\&尊重\& data-hovercard=\&p$b$d7dcc74f70c44e68269b43\&\u003E尊重\u003C\u002Fa\u003E」这个名字起的好尴尬。虽然你这个回答被折叠了,因为我觉得很多人确实这么看的,也回应下。\u003C\u002Fp\u003E\u003Cp\u003E首先那段时间,我尽量的用不被嫌弃的方式在「刷广告」,知乎、开发者头条、各大Python相关公众号、csdn\u002Foschina活动等等。我首先也是一个程序员,烦广告,相当反感侮辱我智商的事情,不过各位问问自己,你买我的书之前,有没有通过我的回答和分享学到干货?我发使用Celery的样章之前,国内是否有人写过更好的Celery内容?在我发了之后出现了4-5篇Celery相关的问题,问问他们不是基于我这篇么?\u003C\u002Fp\u003E\u003Cp\u003E给大家大量广告刷屏的感觉其实更多的是因为国内程序员写书的很少,并且相当一部分不愿意出来也不会搞宣传这种程序员不擅长的事情。那段时间我做了很多营销的工作,但没有花一分钱,我也没有什么特殊关系。 这听起来好像没人信,我解释下:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E我一直愿意和他们维护良好的关系,这是互惠互利的好事,我发的文章授权他们可以随意转载,我愿意接受邀请参与一些相关社群的活动讨论,如果不是因为我感觉欠个人情我才不会参与这种活动,了解我的人都知道我的性格。我个人很鄙视花钱做广告卖书这种行为,而且我选择的都是我认为不错的渠道,最后大家双赢。我也不靠「自己买票送人提高参与人数」这种高阶玩法让数据好看,只是第三次送过3张票。\u003C\u002Fli\u003E\u003Cli\u003E我这本书这种效应也会给他们带来新的流量,这种流量的价值很高,因为都是真的目标用户。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E知乎是我的一个重要渠道,我看中知乎是因为它的社交因素,对我的书的传播有巨大的帮助。事实上也证明了这件事,之后我看好几本书的作者也是这么做的。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Ff1d42bb8e3b6ac6eebb0f9b\& data-hash=\&f1d42bb8e3b6ac6eebb0f9b\& class=\&member_mention\& data-editable=\&true\& data-title=\&@许辰\& data-hovercard=\&p$b$f1d42bb8e3b6ac6eebb0f9b\&\u003E@许辰\u003C\u002Fa\u003E: 性价比太低\u003C\u002Fblockquote\u003E\u003Cp\u003E这回答不太好吧。别只说结论来些论点啊?互联网是透明的,谈谈你觉得差的原因,如果你要写这本书,怎么写?\u003C\u002Fp\u003E\u003Cblockquote\u003E匿名用户:\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Ffd7c571a0ada1a72e42e8d\& data-hash=\&fd7c571a0ada1a72e42e8d\& class=\&member_mention\& data-title=\&@萧井陌\& data-editable=\&true\& data-hovercard=\&p$b$fd7c571a0ada1a72e42e8d\&\u003E@萧井陌\u003C\u002Fa\u003E
说这本书代码垃圾,逻辑也垃圾。培训课上经常手撕董明伟的代码。\u003Cbr\u003E曾经拒过萧井陌的那家大公司的某Python牛亲自表示,这本书是从宏观讲web,狗书是从细节讲web,至于好不好不予对比。\u003Cbr\u003E但我不小心看过这本绿书,代码确实不咋地让人微微泛恶心。\u003C\u002Fblockquote\u003EA:知乎看世界。比如我之前写的那个网云爬虫最后被寄了律师函,我觉得这应该是被人举报的。有些人技术不行,代码写的也烂,但是看不了别人好啊,就得背后干点什么。一看这问题下不少回答都觉得我的书有用,有些人很难受,虽然那我不能理解这种难受,但是我劝你,有病就早点看。哥,辛苦你千万别匿名。怕啥啊?不要只说结论,你可以给我录个培训过程小视频啊证明 \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fxiao-jing-mo\& data-editable=\&true\& data-title=\&@萧井陌\&\u003E@萧井陌\u003C\u002Fa\u003E 手撕我,你完全可以说这个「某Python牛」的名字,别给人编造的感觉啊?至于你说的「但我不小心看过这本绿书,代码确实不咋地让人微微泛恶心。」,很抱歉让你的产生了这种奇妙的感觉,你可以show me your code呀,别光恶心啊!!!你说对吧,我等你手撕我,但是千万别给我装某个东西的感觉。对了,我叫董伟明,你找撕我的人亲自来,你蹭热度,又匿名,不是蠢就是坏。\u003Ch2\u003E\u003Cb\u003E结束语\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E这本书早已经越过1w本的大关,现在每月500+的销量,我一直比较相信亚马逊的评分体系,我混了一个4星评价,京东上好评也达到了98%,感谢大家对我的支持和认可。对于买了我的书不满意的同学,无论什么原因,先说一声抱歉了,限于能力和精力,我已经尽力让大家都有所收获了,相信有了这一次的经验下次写书会更好。\u003C\u002Fp\u003E\u003Cbr\u003E我格外的注意了一下,在我之后出版的国内书基本都沦落了,这说明国内的技术图书还有很长的一段路要走。大家加油?\u003Cbr\u003E\u003Cbr\u003E虽然现在已经集齐了各出版社的邀约,我的书也出版到了台湾,不过未来1-2年我不再写书了,不过还会写一些技术文章,大家可以关注微信公众号「Python之美」及时看到。希望越来越多的人,尤其是真正的Python高手出来写书,如果你没有途径欢迎各种方式找我引荐。&,&updated&:new Date(&T10:28:49.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:34,&likeCount&:66,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T18:28:49+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-2b939abea342de3bdefcda3_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:34,&likesCount&:66},&&:{&title&:&Python技术分享的乱象&,&author&:&dongweiming&,&content&:&\u003Cp\u003E我出书之后的宣传活动有相当的比重来自知乎,我收获了更多的赞同、喜欢和关注者,不得不说我及时的抓住了知乎流量红利期,也在知乎Live爬升期的早期开了我的第一场Live。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E本来我希望自己做成一种示范,让大家走出软件作坊,出来分享,获得更多的关注和认可,变现(引流)... 最后让这个圈子能够良好的发展。其中最重要的是希望做分享和看这些分享的同学都能进行技术上和格局上的提升。现在看来有很多效仿者和可能被我影响的分享者。\u003C\u002Fp\u003E\u003Cp\u003E我在 \u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&Python并发编程\& class=\&\&\u003EPython并发编程\u003C\u002Fa\u003E 里面说过:\u003C\u002Fp\u003E\u003Cblockquote\u003E感谢每一个出来分享的同学,是大家让Python这个圈子更好。\u003C\u002Fblockquote\u003E世界是如此浮躁,希望更少的付出换来更多的回报当然是合理的,不过有些东西不花时间去沉淀真的不太可能。我在每次的分享和Live里都非常强调基础,我也很直白的表示对于「21天精通XX」,「从入门到精通XX」这种书籍的鄙视。\u003Cblockquote\u003E博观而约取,厚积而薄发 - 苏轼\u003C\u002Fblockquote\u003E\u003Cp\u003E今天说的是最近在知乎发现了一些和我想法相悖的苗头。想了很久,因为我知道一说话可能会得罪一些人,不过作为一个Python圈的小V,是有必要站出来表达个态度的,这篇文章希望更多从事着和希望从事Python工作的同学能看到和扩散。\u003C\u002Fp\u003E\u003Cp\u003E现在知乎上Python相关内容有以下三大特点:\u003C\u002Fp\u003E\u003Cp\u003E1. \u003Cb\u003E绝大多数是写爬虫的\u003C\u002Fb\u003E。爬虫我认为是一个\u003Cb\u003E很简单,非常容易看到天花板\u003C\u002Fb\u003E的技能。当你完整的靠自己写出来第一个爬虫之后就入门了,至于再写10个还是100个其实都是量的问题,爬多了会麻木、无成就感、\u003Cb\u003E吐\u003C\u002Fb\u003E。如果每看到一个爬虫文章都要点赞和收藏但是从来不考虑去自己动手实战一下,那么这完全是无意义的。Python能做的事情那么多,语言也很博大,希望大家除了爬虫多关注其他内容,初学者也请注意,爬虫只是Python能干的事情的一个小角,不要以为这么容易就玩转Python,能运行一个Python脚本或者使用框架达到某个目的,只是万里长征第一步,路还很长呢。\u003C\u002Fp\u003E\u003Cp\u003E2. \u003Cb\u003E工具资料集合\u003C\u002Fb\u003E。无论在哪里这都是最容易获得点赞和收藏,门槛最低的骗赞套路。花点时间搜集点相关的内容拼凑一篇文章即可,作为分享者,这些东西你真的了解过吗?那些点赞的同学,这些东西你除了顺手点赞和放进书签栏里面,会花时间挨个使用和琢磨甚至用在工作中了吗?我想起来刚工作不久的自己,对什么都有兴趣,所以买了很多书,但是最后也就看了其中很小的一部分,大部分后来都放咸鱼卖掉了,不过每次有新书还都第一时间买,心理有一种买了书就学到了书中知识的踏实感。我不反对这种帮助那些不了解这个领域的和新手省去前期搜集,分类和筛选的工作,就比如知名的awesome XX系列,非常有价值!但是请做这种事情的分享同学考虑下你对这个领域是不是足够了解,有没有能力去甄别不好的和错误的内容,不要好心办坏事哦。\u003C\u002Fp\u003E\u003Cp\u003E3. \u003Cb\u003E为了吸引眼球总想弄个大新闻\u003C\u002Fb\u003E。最近时间线上相继出现如下标题的文章:\u003C\u002Fp\u003E\u003Ccode lang=\&python\&\u003EPython中那些神一样的代码\n传说中Python最难理解的点|看这完篇就够了\nPython高手都知道的内置函数,你不知道就low了\nPython开发工具之神兵利器\nPython里的黄金库,学会了你的工资至少翻一倍\n\u003C\u002Fcode\u003E这... 吓得我赶紧抱着忐忑、敬畏的心情点进去一看,尴尬病都犯了,我都没顾上看东西写的是不是对的。如果不是别有用心,麻烦别用这种名字了,内容就是\u003Cb\u003E基-础-知-识\u003C\u002Fb\u003E,我感觉我这种熟手受到了一万点侮辱,请别弄出来误导新手可以么?通过我长时间的观察,一篇文章取个好名字就成功的了一半,不过内容也得过硬,否则就会挨骂。这在某个号称只有高手分享的技术社区很明显,别的领域我不熟不乱说,在Python领域的文章的质量我只能用「口可口可」来表达,愚人节那天还做了一个低级趣味的宣传,当然这种社区我不去,眼不见心不烦也就完了。我不反对为了吸引眼球的夸张手法,但是不要把精力大量的用在选个好标题上,这就本末倒置了。\u003Cb\u003E其实真正的「高手」是不会用这种标题的,好的技术不是靠吸引眼球才能获得应有的关注,读者需要的是内容不是花哨。\u003C\u002Fb\u003E古语说见贤思齐,读者同学们请先弄清楚老师有没有能力教你,然后决定要不要点赞,再考虑要不要去学习Ta。\u003Cp\u003E辛苦 \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F3d198aa83efb9f4a4c027e\& data-hash=\&3d198aa83efb9f4a4c027e\& class=\&member_mention\& data-title=\&@知乎小管家\& data-editable=\&true\& data-hovercard=\&p$b$3d198aa83efb9f4a4c027e\&\u003E@知乎小管家\u003C\u002Fa\u003E 赶紧反馈提供「屏蔽标题包含某些关键词文章」的功能吧,凡是出现 高手,神,传说,low,牛逼, 神兵利器,top N,全栈、干货 等百余个浮夸词汇的文章我都没兴趣,请不要污染我的时间线,另外专栏文章急求反对、没有帮助这2个功能。\u003C\u002Fp\u003E\u003Cp\u003E新手同学们,\u003Cb\u003E现在有一种税叫做智商税你造\u003C\u002Fb\u003E\u003Cb\u003E不造\u003C\u002Fb\u003E\u003Cb\u003E?\u003C\u002Fb\u003E看了我这篇文章还信的话,那么... 就继续信下去吧。\u003C\u002Fp\u003E\u003Cp\u003E下面这句与君共勉:\u003C\u002Fp\u003E\u003Cblockquote\u003E博学之, 审问之, 慎思之, 明辨之, 笃行之 -《礼记·中庸》\u003C\u002Fblockquote\u003E&,&updated&:new Date(&T10:57:11.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:120,&likeCount&:529,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T18:57:11+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-e3b27f2eeb2d29c55e70cfcf58c388b9_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:120,&likesCount&:529},&&:{&title&:&《如何选择Python版本2还是3》涉嫌大量的「抄袭」&,&author&:&dongweiming&,&content&:&中午逛知乎看到了 \u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&如何选择Python的版本,2还是3? - 知乎专栏\& class=\&\&\u003E如何选择Python的版本,2还是3? - 知乎专栏\u003C\u002Fa\u003E(删的好快,不过不用担心,看文末的全文截图),我好奇又点了进去。我的性格一向是不太愿意和人争,更不愿意直接怼人,不过今天发现的事情更严重,我觉得涉嫌从我的书《\u003Ca href=\&http:\u002F\u002Fitem.jd.com\u002F.html\& data-title=\&Python Web开发实战\& class=\&\& data-editable=\&true\&\u003EPython Web开发实战\u003C\u002Fa\u003E》中「借鉴」了一些内容, 希望\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F20a5c8a47e345b7dcceebe6227936aec\& data-editable=\&true\& data-title=\&@Python爱好者\&\u003E@Python爱好者\u003C\u002Fa\u003E携你的 Python爱好者社区 来和我讨论下。\u003Cp\u003E首先是觉得文中有2点我觉得不对。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E目前最新的数据是,Python有两个版本:一个是\u003Cstrong\u003E2.7.12版\u003C\u002Fstrong\u003E,一个是\u003Cstrong\u003E3.5.12版\u003C\u002Fstrong\u003E.\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003EQ: 现在最新的是2.7.13和3.6.1,你是多久没上过官网了?\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Ch2\u003EPython2和Python3的主要区别\u003C\u002Fh2\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003EQ: Python 2\u002F3的却别远不止你列的那2点,我怀疑你Python2\u002F3用的根本不多,要是专门介绍这个能写一篇很长的文章。还是那句话,请不要标题党,我年轻你不要骗我。\u003C\u002Fp\u003E\u003Cp\u003E回到正题,开始举证阶段:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E1. 社区调查数据\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cblockquote\u003E\u003Cp\u003E下面我们看一个数据,这是Python社区联和一些网站在2014做的一个调查,关于Python2\u002F3,部分的结果如下:\u003C\u002Fp\u003E\u003Cp\u003E1).97.51%用户还在写Python2的代码\u003C\u002Fp\u003E\u003Cp\u003E2).60%的用户写Python3的代码\u003C\u002Fp\u003E\u003Cp\u003E3).78.09%的用户更多地写Python2代码\u003C\u002Fp\u003E\u003Cp\u003E4).77.09%的用户认可Python3\u003C\u002Fp\u003E\u003Cp\u003E目前有一些Linux里的操作系统已经默认使用Python3:\u003C\u002Fp\u003E\u003Cp\u003E1).Arch Linux (轻量级的Linux操作系统)\u003C\u002Fp\u003E\u003Cp\u003E2).Ubuntu 16.04 (一个桌面应用为主的Linux操作系统)\u003C\u002Fp\u003E\u003Cp\u003E3).Fedora(Redhat桌面版本的延续)\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cbr\u003E\u003Cp\u003E我的书中是这样写的:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-4b5d5ec9deb39da315ecb5.png\& data-rawwidth=\&1558\& data-rawheight=\&604\&\u003E我看了下原文,\u003Ca href=\&https:\u002F\u002Fask.hellobi.com\u002Fblog\u002Fcaoniao_xueyuan\u002F7228\& data-editable=\&true\& data-title=\&如何选择Python版本2还是3\& class=\&\&\u003E如何选择Python版本2还是3\u003C\u002Fa\u003E, 没有找到这个调查结果的链接,我认为既然引用数据,就应该有原来的链接吧?当然买我的书,是能找到对应的链接地址的(你不会是现买,明天书到了才回应吧)\u003C\u002Fp\u003E\u003Ch2\u003E2. Python 2维护工作的介绍\u003C\u002Fh2\u003E\u003Cblockquote\u003Epython2现在只是做\u003Cstrong\u003Ebug的修复,\u003C\u002Fstrong\u003E新硬件和操作系统兼容的相关维护工作。不会再有新的功能加入,python2只支持到2020年.\u003C\u002Fblockquote\u003E我的原文是:\u003Cimg src=\&v2-13cd4eb0fd001dbec556.png\& data-rawwidth=\&1636\& data-rawheight=\&188\&\u003E\u003Ch2\u003E3. 结论部分\u003C\u002Fh2\u003E\u003Cblockquote\u003E\u003Cp\u003E编程其实主要是对编程思想的理解和经验的积累,千万不要因为纠结学Py2还是Py3而浪费大量时间。\u003C\u002Fp\u003E\u003Cp\u003EPy2和Py3里面的思想基本是相通的,招式是类似的.当你熟悉Python到一定的程序的时候,会Py2的人学Py3只需要很短的时间。\u003C\u002Fp\u003E\u003Cp\u003E所以不要再纠结细枝末节的语法差异,而耽误了宝贵的学习时间\u003Cbr\u003E\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E这次变得好厉害,调整下顺序,改了下用词,汉语博大精深啊!\u003C\u002Fp\u003E\u003Cimg src=\&v2-6a631ec430dfb0ec99d6e.png\& data-rawwidth=\&1592\& data-rawheight=\&314\&\u003E\u003Cp\u003E其他一些词语细节我觉得很像,买了我的书的同学请打开本书第一章第一节仔细对比找乐趣吧。另外这篇专栏还有很多其他内容,作为资深Google用户,我就随便的搜了了些内容,大家来感受下:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003EPython语言是在20世纪90年代诞生的,算算到现在已经是25岁的大叔级的语言了(跟它同一个时代的还有一个鼎鼎大名的java是在1995发行的, 红了几十年).\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E但是Python真正成名比java晚了很多年,其实也主要是应用领域的时代变迁.(猜测为啥,对了大数据的出现)\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E\u003Cp\u003EPython2是Python里面一个非常重要的版本,最早的版本是从2001的时候开始的,特别是从2006年开始py2.5的发布,python的功能逐渐强大起来,慢慢开始稳定下来,并且差不多1-2年左右递增一个版本,在08年左右开始慢慢的火起来了.\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cbr\u003E\u003Cli\u003E\u003Cp\u003E而Python3最早是从2008开始发布,但是py3.0的版本非常不稳定,所以社区更新的很快,差不多几个月就更新一次。所以一开始的时候并没有很多人用,只到2014春暖花开的时候python3.4 deliver了才开始慢慢稳定下来.\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E我刚才举例的那部分.....\u003C\u002Fp\u003E\u003Cp\u003E选择还是要根据自己的需求若是企业的开发,要满足工作的需求,尤其是依赖的软件只能运行在Python2下,首选Python2.比如你的开发需要依赖大量的第三方的库(因为学Python非常大的一个原因就是因为它有成千上万的第三方包),像大量的数据分析,科学计算,还是选Python2吧。\u003C\u002Fp\u003E\u003Cp\u003E如果你是自己学习,研究的话,愿意拥抱变化,那么建议学Python3,因为它是未来的方向。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E编程其实主要是对编程思想的理解和经验的积累,千万不要因为纠结学Py2还是Py3而浪费大量时间。Py2和Py3里面的思想基本是相通的,招式是类似的.当你熟悉Python到一定的程序的时候,会Py2的人学Py3只需要很短的时间。所以不要再纠结细枝末节的语法差异,而耽误了宝贵的学习时间。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E我找到了这篇 \u003Ca href=\&http:\u002F\u002Fwww.cnblogs.com\u002FzhuPython\u002Fp\u002F6484311.html\& data-editable=\&true\& data-title=\&Python入门教程(1) - GenTleMrzhU - 博客园\& class=\&\&\u003EPython入门教程(1) - GenTleMrzhU - 博客园\u003C\u002Fa\u003E(其实还有几篇,我只关注发布时间,不关注是不是原创)\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-2594faedcf1a6b24cd549.png\& data-rawwidth=\&1908\& data-rawheight=\&942\&\u003E我靠,原来抄袭已经过了一次手了,包含我说的那段数据结果,怪不得没有数据来源呢....\u003C\u002Fp\u003E\u003Cp\u003E好戏刚刚开始。我们再看一段:\u003C\u002Fp\u003E\u003Cblockquote\u003EPython 2 中文本和二进制数据是一个烂摊子,Python中的str 是代表二进制数据还是文本数据是有二义性,文字既能代表文本数据又能代表二进制数据这很麻烦,此类错误发生的时候,我们很难意识到。\u003Cbr\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E我找了一篇译文, \u003Ca href=\&http:\u002F\u002Fpython.jobbole.com\u002F8F\& data-editable=\&true\& data-title=\&为什么会有 Python 3 的存在? - Python - 伯乐在线\& class=\&\&\u003E为什么会有 Python 3 的存在? - Python - 伯乐在线\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-4e090cbd71f3ce0955c3eaafd84a8bfb.png\& data-rawwidth=\&1276\& data-rawheight=\&976\&\u003E注意,其中的2处高亮和最后那句「此类错误发生的时候,我们很难意识到。],同样是这篇文章:\u003C\u002Fp\u003E\u003Cimg src=\&v2-ef1fe.png\& data-rawwidth=\&1414\& data-rawheight=\&498\&\u003E\u003Cbr\u003E\u003Cp\u003E感受下原文:\u003C\u002Fp\u003E\u003Cblockquote\u003E由于python是在1991年2月开源发布,这意味着它早于在1991年10月发布的第一版 Unicode 标准。在接下来几年中,晚于 Unicode 标准出现的语言都选择在支持 Unicode 编码的基础上实现自己的 str 类型,这让 Python 2 处于尴尬的境地。\u003Cbr\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E\u003Cb\u003E看文章最后哈:\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cimg src=\&v2-bde77354bd3.png\& data-rawwidth=\&1402\& data-rawheight=\&398\&\u003E\u003Cp\u003E还有一句:\u003C\u002Fp\u003E\u003Cblockquote\u003E最后说一下,\u003Cstrong\u003E原创不易\u003C\u002Fstrong\u003E,希望大家能够给点支持,欢迎\u003Cstrong\u003E转发\u003C\u002Fstrong\u003E\u003Cstrong\u003E,\u003C\u002Fstrong\u003E\u003Cstrong\u003E留言,\u003C\u002Fstrong\u003E也是对我的一点\u003Cstrong\u003E鼓励和动力\u003C\u002Fstrong\u003E.\u003C\u002Fblockquote\u003E\u003Cp\u003E说好的原创呢?还用了一个「坚持」。这年代真是什么人都舔着脸说原创啊。开头我说的Python版本太老终于知道原因了:\u003Cb\u003E因为这就是一篇很老的文章被抄袭进来的嘛。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E欢迎各位知友来评价下这篇文章的「原创性」,另外\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F20a5c8a47e345b7dcceebe6227936aec\& data-hash=\&20a5c8a47e345b7dcceebe6227936aec\& class=\&member_mention\& data-editable=\&true\& data-title=\&@Python爱好者\& data-hovercard=\&p$b$20a5c8a47e345b7dcceebe6227936aec\&\u003E@Python爱好者\u003C\u002Fa\u003E 请不要以转载作为借口,转载既代表你认可;也别说你事前并不了解,你这相当于说「我就抄袭能咋地,别人揭穿我就说不知道不就完了」,是当知友都是S^B么?以后千万别再写「原创」,我容易恶心。 \u003C\u002Fp\u003E\u003Cp\u003E前天刚说了,来知乎想变现就注意点吃相,还是不听啊,写不出东西就别憋着硬写,多累啊。\u003C\u002Fp\u003E\u003Cp\u003E还有,评论区关闭了,是怕什么?\u003C\u002Fp\u003E\u003Cp\u003E另外那个「\u003Ca class=\&\& href=\&https:\u002F\u002Fask.hellobi.com\u002Fpeople\u002Fcainiao_xueyuan\& data-editable=\&true\& data-title=\&菜鸟学Python\&\u003E菜鸟学Python\u003C\u002Fa\u003E」的作者看过来,看过来,我看不起你。\u003C\u002Fp\u003E\u003Cp\u003E我需要点说法,\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F20a5c8a47e345b7dcceebe6227936aec\& data-hash=\&20a5c8a47e345b7dcceebe6227936aec\& class=\&member_mention\& data-editable=\&true\& data-title=\&@Python爱好者\& data-hovercard=\&p$b$20a5c8a47e345b7dcceebe6227936aec\&\u003E@Python爱好者\u003C\u002Fa\u003E
请不要删除这个专栏以及你们网站上的文章,删了我这里也备份了(见本文最后部分)。请在你的专栏上先写一篇对我道歉的文章,写了道歉文之后再删。建议以后别没事写「原创」了,我对你的鼓励就是「怼」。我的书比较厚,后面不会出其他「借鉴」的文章了吧? \u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E其他关注这个专栏的同学,注意啦,注意啦,这就是你们要的真相。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E额,我前天刚发了篇\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&\& data-editable=\&true\& data-title=\&Python技术分享的乱象 - 知乎专栏\&\u003EPython技术分享的乱象 - 知乎专栏\u003C\u002Fa\u003E,你这是故意的挑衅嘛?\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E我已对此事进行了取证, 保留通过法律手段追究此事的权利。\u003C\u002Fb\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fe5b5468539ffdbd78dc4a\& data-hash=\&e5b5468539ffdbd78dc4a\& class=\&member_mention\& data-title=\&@知乎版权\& data-hovercard=\&p$b$e5b5468539ffdbd78dc4a\& data-editable=\&true\&\u003E@知乎版权\u003C\u002Fa\u003E \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F3d198aa83efb9f4a4c027e\& data-hash=\&3d198aa83efb9f4a4c027e\& class=\&member_mention\& data-hovercard=\&p$b$3d198aa83efb9f4a4c027e\& data-editable=\&true\& data-title=\&@知乎小管家\&\u003E@知乎小管家\u003C\u002Fa\u003E 你们要不要出来管管,有人总挑战我极限。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E为了防止原文被删,备份一下:\u003C\u002Fp\u003E\u003Cimg src=\&v2-15afafea99be55.png\& data-rawwidth=\&2550\& data-rawheight=\&10360\&\u003E&,&updated&:new Date(&T08:08:37.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:88,&likeCount&:381,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T16:08:37+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-7e62de640eb4fbe264d7aa_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:88,&likesCount&:381},&&:{&title&:&我对Python开发者社区抄袭一事的处理说明&,&author&:&dongweiming&,&content&:&周四我发表了\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&《如何选择Python版本2还是3》涉嫌大量的「抄袭」\& class=\&\&\u003E《如何选择Python版本2还是3》涉嫌大量的「抄袭」\u003C\u002Fa\u003E一文,感谢大家的支持。相信有同学还在关注这件事的下一步,甚至有人质疑我是不是收了好处被「公关」闭嘴了。\u003Cp\u003E非常抱歉从周五就去天津处理买房的事情了,天津限购造成了一些糟心的事儿,o(︶︿︶)o,如果有认识在天津打房产官司律师的同学欢迎私信我,有事咨询,非常感谢。\u003C\u002Fp\u003E\u003Cp\u003E做事我习惯有始有终,很抱歉,这么久才出来对这件事做一个完整的说明,个人觉得还蛮有趣的,大家可以搬个小板凳当个故事看看。\u003C\u002Fp\u003E\u003Cp\u003E我先介绍这件事整个过程:\u003C\u002Fp\u003E\u003Cp\u003E1. 中午吃了饭遛弯时无聊看到这篇文章,觉得其中有部分内容涉嫌抄袭。尤其看到当时那篇抄袭专栏文章的评论区被关闭,非常不爽。找买过书的同学和编辑确认,一致认为抄袭的非常直接,决定怼之。\u003C\u002Fp\u003E\u003Cp\u003E2. 开始搜集证据,包含相关内容的截图和整个专栏的截图。发现和我书有关的内容只是其中一部分,随即对剩下的内容的原创性产生怀疑。程序员的性格让我决定Google一下,结果就是如上文的结果,全篇都是抄袭的,毫无原创性。怒,我的小宇宙爆发!!! 注意,认识我的都知道,如果不招我到一定程度,我是不愿意发生冲突的。\u003C\u002Fp\u003E\u003Cp\u003E3. 文章写好,但是已经开始忙于手头工作了。差不多4点多,下午茶时间想起来,发现文章已经删掉!!!\u003Cb\u003E这只能说明一个问题:我的群里有内鬼!!!\u003C\u002Fb\u003E 一般人可能这文章就发不成了,因为东西都删了,红口白牙啊!不过,正好对手是我:小明明,哥作为一个资深工程师,思维缜密,早先一步保存了截图等证据。so,
直接发布。此时\u003Cb\u003E下午\u003C\u002Fb\u003E\u003Cb\u003E4点08分\u003C\u002Fb\u003E。发完之后,发现自己非常具备撕逼潜质:Google用的溜,还保留了足够的证据,机智如我,给自己了一个?。\u003C\u002Fp\u003E\u003Cp\u003E4. \u003Cb\u003E下午4点36分左右\u003C\u002Fb\u003E,Python开发者社区背后维护者把我拉进有「菜鸟学Python」楼主的一个微信群。有联系方式是因为之前想和我谈合作,我拒绝了,但是有微信。不过我要说的是,公关的速度是真快啊。\u003C\u002Fp\u003E\u003Cp\u003E5. 在上面的文章也说过,我要的是道歉,让大家看到真相,我并不靠维权挣钱。一开始我就说发道歉就完事:\u003C\u002Fp\u003E\u003Cimg src=\&v2-9f438807fab5cea9d4d95fe.jpg\& data-rawwidth=\&1026\& data-rawheight=\&728\&\u003E\u003Cimg src=\&v2-7d32a6e6bf2adf7b3fd1168fcd29777e.jpg\& data-rawwidth=\&1018\& data-rawheight=\&720\&\u003E\u003Cbr\u003E\u003Cp\u003E由于微信群完整记录比较长,我也不知道怎么截完整记录,我就剪切一些觉得重要的,也做一些简单的介绍。 当然,为了保护大家的隐私,昵称我涂掉了,同时,大家也别偏听偏信,如果\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F20a5c8a47e345b7dcceebe6227936aec\& data-hash=\&20a5c8a47e345b7dcceebe6227936aec\& class=\&member_mention\& data-title=\&@Python爱好者\& data-editable=\&true\& data-hovercard=\&p$b$20a5c8a47e345b7dcceebe6227936aec\&\u003E@Python爱好者\u003C\u002Fa\u003E 觉得整个过程我有误导或者其他借机敲诈之类企图的东西,欢迎拿证据写篇专栏怼我。\u003C\u002Fp\u003E\u003Cp\u003E不过我还记得(不知道你们是不是记得),那篇文章共抄袭了三篇文章。当然其中一篇也是抄袭了我的书,但不是本文要说的,当这件事到一个阶段,我会找博客园方面删掉那篇。另外还抄袭了一篇伯乐头条的译文。不过我还是友情提醒:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cimg src=\&v2-bd6bce05b9cb6.jpg\& data-rawwidth=\&1020\& data-rawheight=\&724\&\u003E我费了些口舌,最后反正没对其他的抄袭行为道歉,你们自己领悟吧。我问了下伯乐在线一个BOSS,他觉得抄袭者不值得浪费时间,以观后效暂不出来怼了。先到这里,我不能乱怼对吧。\u003C\u002Fp\u003E\u003Cp\u003E接着二位发了道歉声明,就是那2个长得差不多的声明:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&【致歉声明】Python开发者社区致歉知乎(董伟明) - 知乎专栏\& class=\&\&\u003E【致歉声明】Python开发者社区致歉知乎(董伟明) - 知乎专栏\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&【致歉声明】菜鸟学python致歉知乎(董伟明) - 知乎专栏(被删掉了,不要怕,下面补回来了)\& class=\&\&\u003E【致歉声明】菜鸟学python致歉知乎(董伟明) - 知乎专栏(被删掉了,不要怕,下面补回来了)\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&【致歉声明】菜鸟学python致歉知乎(董伟明)- 知乎专栏\& class=\&\&\u003E【致歉声明】菜鸟学python致歉知乎(董伟明)- 知乎专栏\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E你们是不是以为他们这么快响应,值得点赞?是因为我给了明确的停战方案。我一边上班干活死忙一边还要操心这个,建议给本文也点个赞。嘿嘿?\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E此时刚17点33分左右:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-cdace817e3cfd45abf51f.jpg\& data-rawwidth=\&1024\& data-rawheight=\&718\&\u003E到这里,我就开始遵守这个口头约定,不会再继续这个文章的后续,也不再更新。接着我这样说:\u003C\u002Fp\u003E\u003Cimg src=\&v2-bdbe815fc14a3df651e414d73eadf7e7.jpg\& data-rawwidth=\&1022\& data-rawheight=\&724\&\u003E\u003Cimg src=\&v2-1cb2266efd2579cdd2976.png\& data-rawwidth=\&1022\& data-rawheight=\&712\&\u003E\u003Cp\u003E另外大家可能注意到 \u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&【致歉声明】Python开发者社区致歉知乎(董伟明) - 知乎专栏\& class=\&\&\u003E【致歉声明】Python开发者社区致歉知乎(董伟明) - 知乎专栏\u003C\u002Fa\u003E 的内容中,多了我的书的购买地址,这并不是利益交换,请看图:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-a8c88ae07f2804dafedf9f35.png\& data-rawwidth=\&1020\& data-rawheight=\&968\&\u003E注意,问我书的购买地址我是没有回应的,第一这个想找就可以找得到,第二是防止落人口实,像是胁迫。\u003C\u002Fp\u003E\u003Cp\u003E之后,我没再做什么,下班前此事解决。因为我愿意给别人和自己都留有余地。也希望 \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F20a5c8a47e345b7dcceebe6227936aec\& data-hash=\&20a5c8a47e345b7dcceebe6227936aec\& class=\&member_mention\& data-editable=\&true\& data-title=\&@Python爱好者\& data-hovercard=\&p$b$20a5c8a47e345b7dcceebe6227936aec\&\u003E@Python爱好者\u003C\u002Fa\u003E 和 \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F6304d5cea185bc39e1c0ee\& data-hash=\&6304d5cea185bc39e1c0ee\& class=\&member_mention\& data-editable=\&true\& data-title=\&@leoxin\& data-hovercard=\&p$b$6304d5cea185bc39e1c0ee\&\u003E@leoxin\u003C\u002Fa\u003E 能够洁身自好,对得起「原创」那个标题。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Ch2\u003E\u003Cb\u003EOk,我们还有别的事情唠一唠\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E我们看看这件事出来之后,在几方的评论都发生了什么?有兴趣的直接去看完整的吧。\u003C\u002Fp\u003E\u003Cimg src=\&v2-50ff6db422f43a55c4fd220f812fb801.png\& data-rawwidth=\&1366\& data-rawheight=\&280\&\u003E\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F20a5c8a47e345b7dcceebe6227936aec\& data-hash=\&20a5c8a47e345b7dcceebe6227936aec\& class=\&member_mention\& data-editable=\&true\& data-title=\&@Python爱好者\& data-hovercard=\&p$b$20a5c8a47e345b7dcceebe6227936aec\&\u003E@Python爱好者\u003C\u002Fa\u003E 希望以后不要做不让人说话,直接删帖的事情,技术圈这么干,不太合适。要容纳反对的声音嘛。你看我就从来不删帖,骂我我就接着,骂得对我就承认,觉得不对的我就直接怼回去。\u003Cimg src=\&v2-14bb064c695cee1cc7aaf0.png\& data-rawwidth=\&1390\& data-rawheight=\&286\&\u003E\u003Cp\u003E一开始我还没看懂 \u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F9fbdce82fec4e374a860fdcf\& data-hash=\&9fbdce82fec4e374a860fdcf\& class=\&member_mention\& data-editable=\&true\& data-title=\&@Pigu\& data-hovercard=\&p$b$9fbdce82fec4e374a860fdcf\&\u003E@Pigu\u003C\u002Fa\u003E 的意思,只能把双方的评论区都完整看了一遍。有2个人说了这句「知错能改善莫大焉」,点赞数还不错。我就不点名字了,这种人不是蠢就是坏,内心已拉黑。嗯,这句话没有错,能改我当然欢迎,不过别说得太早,大家都在看着。Python圈子为什么风气不好,其中一个原因就是很多人不出来说话,没人愿意出来帮助净化环境,看评论就知道,很多人看不惯,不出来说。等到了某一天风气真的养成了,这里成了智商税收割机的天堂,Python在中国也就彻底没救了。想起来那篇很触动我的马丁·尼莫拉的那首忏悔文:\u003C\u002Fp\u003E\u003Ccode lang=\&text\&\u003E起初他们抓了所有的共产党人;\n我没有出声,\n因为我不是共产党人。\n\n接着他们抓了所有的犹太人;\n我没有出声,\n因为我不是犹太人。\n然后他们抓了所有的工会骨干;\n我没有出声,\n因为我不是工会骨干。\n后来他们抓了所有的天主教徒;\n我没有出声,\n因为我属于新教。\n最后他们来抓我;\n到那时候,\n已经没有剩下能出声讲话的人了。\u003C\u002Fcode\u003E\u003Cp\u003E\u003Cb\u003EPython圈子有XX,我刚做了个示范,正好你遇到了,你也可以站出来怼,记得@我,我来点赞。如果怼,请深怼。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cimg src=\&v2-6dab42f6fe02ecc186c9e7f974f8f46b.png\& data-rawwidth=\&1362\& data-rawheight=\&250\&\u003E\u003Cp\u003E说句难听的,我把你老婆QJ了,和你说对不起,你会说No problem嘛?我?奴性太重的人。\u003C\u002Fp\u003E\u003Cimg src=\&v2-e8be6aaeb430bf.png\& data-rawwidth=\&1386\& data-rawheight=\&270\&\u003E\u003Cp\u003E说的太好了。知识只要原作者选择分享出来并且没有申明不能借鉴,你就可以借鉴。那么多框架和语言都是站在巨人的肩膀上面。另外一个角度,有时候「借鉴」是无法避开的,比如官方网站对某部分的解释是最恰当的,或者网上某篇博客的阐述非常深入(例如符合的应用场景,特点,最佳实践等),也没有必要为了避嫌而故意让文章质量下降,所以这个时候找原作者打招呼,或者基于博客申明的协议来做引用就显得很重要了。\u003C\u002Fp\u003E\u003Cp\u003E一篇文章引用其他的文章一两句,甚至一段话我觉得也不是不可以接受的,但是通篇的「借鉴」就显得底线太低了。请不要抄袭,要有自己的理解和思想,哪怕其中有些观点是错误的。在职业早期我也做过借鉴,在我的旧博客里面可以翻到,当时还没有中文版的《Python标准库》,我找到了它的源站 \u003Ca href=\&https:\u002F\u002Fpymotw.com\u002F2\& class=\&\& data-editable=\&true\& data-title=\&Python Module of the Week\&\u003EPython Module of the Week\u003C\u002Fa\u003E,发现简直是我学习Python标准库除了翻源代码最好的方式了,我那段时间发了很多的文章,比如 \u003Ca href=\&http:\u002F\u002Fwww.dongwm.com\u002Fold\u002Farchives\u002Fguanyustructyanjiu\u002F\& data-editable=\&true\& data-title=\&关于struct研究 - 小明明s à domicile\& class=\&\&\u003E关于struct研究 - 小明明s à domicile\u003C\u002Fa\u003E ,都是基于人家英文模块文档写下来,自己改动了代码,也在一些地方加上了一些注释,表达我是这么l。当然我这个仅供个人学习和记录,我并没有用它直接或者间接的去牟利。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E看过我的微信公众号「Python之美」的同学应该看过转载别人的文章,我个人能力有限,所以会把一些我认为不错的内容也转载到我的公众号里面,比如 \u003Ca href=\&https:\u002F\u002Fmp.weixin.qq.com\u002Fs?__biz=MzA3NDk1NjI0OQ==&mid=&idx=1&sn=59d7d4f74e&chksm=9f76ad62aae103df985cc0c2ee7734e1faf#rd\& data-editable=\&true\& data-title=\&Python最差实践\& class=\&\&\u003EPython最差实践\u003C\u002Fa\u003E,可以看到原作者信息在文章最显著的地方。我都是先用各种方式勾搭到作者,拿到授权才会发,看一下我的Gmail发件箱:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&v2-44b18af59d681c19d021dbbda38979e1.png\& data-rawwidth=\&2134\& data-rawheight=\&450\&\u003E当然也会有私信,微博、QQ和微信等渠道的方式。其中\u003Ca href=\&http:\u002F\u002Fmanjusaka.itscoder.com\u002F\u002F18\u002FSomeone-tell-me-that-you-think-Python-is-simple\u002F\& data-editable=\&true\& data-title=\&《听说你会 Python ?》\& class=\&\&\u003E《听说你会 Python ?》\u003C\u002Fa\u003E的作者还发朋友圈说这事,我把它翻出来(注:已经微信向作者拿到发朋友圈截图的授权):\u003Cimg src=\&v2-090efc48e1f278f2f7e09dc7aa489c0e.png\& data-rawwidth=\&719\& data-rawheight=\&842\&\u003E其中另外2个分别是伯乐在线和Python编程公众号(ID: LovePython),我也收到过开发者头条等人转载的申请(消息太多,如果有人找我申请我忘记了欢迎留言和私信我,我会补充进来)。这些都是尊重技术版权和技术分享者的,我在这里给他们点个?。说白了,大家都是变现,但是这种转载的态度才能受到认可,我也很愿意被转载。\u003C\u002Fp\u003E\u003Cblockquote\u003E尊重别人,才会受到别人的尊重\u003Cbr\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E说完了我的评论区,我瞅了下道歉的文章,竟然已经110+赞了,我这篇文章才290+啊。有时候感觉智商是一个硬伤,智商没问题的知友,你们的工作任重而道远啊。\u003C\u002Fp\u003E\u003Cimg src=\&v2-edbbc216c765aa4afe6d442.png\& data-rawwidth=\&1410\& data-rawheight=\&234\&\u003E呵呵,知乎我几乎每天都打开,看到污了我眼睛的东西,我不仅敏感,还上场怼呢。\u003Cimg src=\&v2-e33450afa489a09bfaa7.png\& data-rawwidth=\&1390\& data-rawheight=\&238\&\u003E\u003Cp\u003E确实没啥,如果仅是技术分享,我可能最多就是私信提醒下就完了,用我的东西来收智商税,我当不了帮凶。\u003C\u002Fp\u003E\u003Cimg src=\&v2-ea8e2c83eefde921.png\& data-rawwidth=\&1424\& data-rawheight=\&258\&\u003E\u003Cp\u003E是呀,我一不要钱,二不把人往死路上整。公关我的时候一个小时内就提出了方案。但是也别给我扣帽子,如果到了我的底线,就不只是小气的问题了。\u003C\u002Fp\u003E\u003Cimg src=\&v2-a1f3cdeabdacd05d4d307f.png\& data-rawwidth=\&1412\& data-rawheight=\&282\&\u003E\u003Cp\u003E心好大,不过中国现在不缺你这样的人。有些东西是技术人的耻辱,要是我被人这么怼早就滚出知乎了:觉得很丢人。我早期也有过不规范转载,这是初学者比较容易忽略的问题。随着自己技术越来越熟悉就越知道知识的价值,版权意识越来越高,我要么写原创,要么找人授权转载,没墨水我可以选择不动笔,我总得对得起自己。\u003C\u002Fp\u003E\u003Cimg src=\&v2-602a23fdd372f84c393bc.png\& data-rawwidth=\&1410\& data-rawheight=\&244\&\u003E\u003Cp\u003E我支持所有技术分享者,尤其是Python的。不过记得要是原创,很多人的智力还在,大家也见过市面。\u003C\u002Fp\u003E\u003Cimg src=\&v2-e380d69f3b22b92fedfe9.png\& data-rawwidth=\&1458\& data-rawheight=\&250\&\u003E\u003Cp\u003E我相信没人不希望变现,不过并不是谁给钱我都愿意同意的,做技术分享,帮助别人我都同意,不需要引用给报酬,但是我的东西不能用来收别人的税,我的东西不是用来骗人的。\u003C\u002Fp\u003E\u003Cimg src=\&v2-f8a4c0d5fd.png\& data-rawwidth=\&1388\& data-rawheight=\&246\&\u003E这个哥们要不是个洗白白的小号,就是智商应该是负数。这是好的东西?\u003Ca href=\&http:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002F20a5c8a47e345b7dcceebe6227936aec\& data-hash=\&20a5c8a47e345b7dcceebe6227936aec\& class=\&member_mention\& data-editable=\&true\& data-title=\&@Python爱好者\& data-hovercard=\&p$b$20a5c8a47e345b7dcceebe6227936aec\&\u003E@Python爱好者\u003C\u002Fa\u003E 态度确实不错,但是要以观后效,我们拭目以待吧。\u003Cbr\u003E\u003Cimg src=\&v2-e9a347c81e745f239481a.png\& data-rawwidth=\&1400\& data-rawheight=\&558\&\u003E\u003Cp\u003E希望这件事是一个鞭策,记得你们说过的话。像前面说的,我不挡人财路,更不会也没有能力阻挠别人获得应有的关注、粉丝等。\u003C\u002Fp\u003E\u003Cp\u003E突然想起来之前在 \u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&\& data-editable=\&true\& data-title=\&Python技术分享的乱象 - 知乎专栏\&\u003EPython技术分享的乱象 - 知乎专栏\u003C\u002Fa\u003E 的评论区看到有人评价我出来怼人是因为眼红别人balabala的一段质疑的话,我记得赞还是挺多的,不过忘记截图了,发的人自己删掉我找不到了,呵呵。怕什么啊?我不眼红,只是\u003Cb\u003E耻与哙伍。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E最近要准备Live了,接下来我将沉寂一周。希望大家遇到看的不爽的事情:\u003C\u002Fp\u003E\u003Cimg src=\&v2-af6a8ab1e0f2082d3ccfc7.jpg\& data-rawwidth=\&300\& data-rawheight=\&301\&\u003E&,&updated&:new Date(&T08:29:28.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:70,&likeCount&:258,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T16:29:28+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-fd7b775d4cab3c092d3d29a_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:70,&likesCount&:258},&&:{&title&:&使用codecs自定义编\u002F解码方案&,&author&:&dongweiming&,&content&:&\u003Cp\u003E相信很多使用Python的同学熟悉编解码,比如:\u003C\u002Fp\u003E\u003Ccode lang=\&python\&\u003EIn : print u'\\U'.encode('utf-8')\n?\nIn : '哈哈'.decode('utf8')\n\nOut: u'\\u54c8\\u54c8'\u003C\u002Fcode\u003E\u003Cp\u003E这样可以在字符串和unicode之前转换,不过细心的同学可能发现了,我使用了「utf-8」和「utf8」,这2个词长得很像。事实上都能正常使用是由于他们都是「utf\\_8」的别名,这些别名的对应关系可以用如下方法找到:\u003C\u002Fp\u003E\u003Ccode lang=\&python\&\u003EIn : import encodings\n\nIn : encodings.aliases.aliases['utf8']\nOut: 'utf_8'\n\nIn : '哈哈'.decode('u8')\nOut: u'\\u54c8\\u54c8'\n\nIn : '哈哈'.decode('utf')\nOut: u'\\u54c8\\u54c8'\n\nIn : '哈哈'.decode('utf8_ucs2')\nOut: u'\\u54c8\\u54c8'\n\nIn : '哈哈'.decode('utf8_ucs4')\nOut: u'\\u54c8\\u

我要回帖

 

随机推荐