有时候看到神回复,感觉真是惊叹!先上几个看看

你小时候父母为了让你能够努力学习,都用过什么丧尽天良的方法? - 知乎
给了我这张脸

求职者在答应企业面试后,没有任何说明而爽约是否妥当? - 知乎
你们企业也经常说“回去等我们的电话吧”然后没有任何下文啊。

什么叫见过大世面 ? -知乎

能享受最好的,能承受最坏的

  神回复总是言简意赅,吐槽精准,回答到位,甚至是让人忍俊不禁,如何找到知乎的所有神回复,有人说找那些投票多并且回答字数少的answer,对于一个计算机的同学,不可能就是这样一条条去翻一吧,让我们写一个爬虫,抓下知乎的问题,每个问题保留投票最高的回答。首先需要一个得到问题列表,这里列表可以在http://www.zhihu.com/log/questions找到,爬问题列表的代码如下:  

def getQuestions(start,offset='20'):#cookies = urllib2.HTTPCookieProcessor()#opener = urllib2.build_opener(cookies)#urllib2.install_opener(opener)
header = {"Accept":"*/*","Accept-Encoding":"gbk,utf-8,gzip,deflate,sdch","Accept-Language":"zh-CN,zh;q=0.8,en;q=0.6","Connection":"keep-alive","Content-Length":"64","Content-Type":"application/x-www-form-urlencoded; charset=utf-8",'Cookie':'*************'"Host":"www.zhihu.com","Origin":"http://www.zhihu.com","Referer":"http://www.zhihu.com/log/questions","User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36","X-Requested-With":"XMLHttpRequest"}parms = {'start':start,'offset':offset,'_xsrf':'*************'}url = 'http://www.zhihu.com/log/questions'req = urllib2.Request(url,headers=header,data=urllib.urlencode(parms))content = urllib2.urlopen( req ).read()html = gzip.GzipFile(fileobj = cStringIO.StringIO(content)).read()html = eval(html)['msg'][1]pageSoup = BeautifulSoup(html)questions = []items = pageSoup.find_all('div',{'class':'zm-item'})for item in items:url = item.find_all('a',{'target':'_blank'})[0].get('href').rsplit('/',1)[1]questions.append(url)lastId = items[-1].get('id').split('-')[1]return questions,lastId

  得到问题列表后再抓取每个问题投票最高的回复,代码如下:

def getArticle(url):page = getPage(url)pageSoup = BeautifulSoup(page)title = str(pageSoup.title).replace('<title>','').replace('</title>','').strip()item = pageSoup.find_all('div',{'class':'zm-item-answer'})if item is None or len(item) == 0:return Noneanwser = item[0].find('div',{'class':'fixed-summary zm-editable-content clearfix'}).get_text().strip()vote = item[0].find('div',{'class':'zm-item-vote-info '}).get('data-votecount').strip()anwser = formatStr(anwser)ans_len = len(anwser)if ans_len > 100:anwser = anwser[0:100]title = formatStr(title)out = [title, anwser, str(ans_len),vote,url]return out

  现在我们得到了每个问题的标题、投票最高的回复、问题链接。接下来我们需要把“回复短投票高”这样的规则进行量化计算,很明显一个回复是神回复的可能性与投票数成正比,与回复文本的长度成反比,但实现上,我们需要注意一些细节,比如有些神配图,一言不语,文本长度为0,所以需要平滑一些,另外回复越段应该越精辟,于是我定义了如下公式:$$Score=\frac{vote}{5+\frac{answer\_len^2}{10}}$$

  这个公式整体来说,认为是神回复的可能与投票数成正比,与回复的长度的平方成反比,加5是为了平滑哪些神配图。

  爬了一个晚上,爬取了2万个问题,然后按Score计算,取Score最大的top 1000,欣赏神回复,请移步至github。

  问题爬得太少,更多的精辟神回复没有找出来。

转载请注明出处:http://www.cnblogs.com/fengfenggirl/  

转载于:https://www.cnblogs.com/fengfenggirl/p/zhihu_shenhuifu.html

如何找出知乎的所有神回复相关推荐

  1. 已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者。

    已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者. 答案: int max(int a,int b) { return (a+b+abs(a-b))/2; } ...

  2. C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

    1. 题目 请编写一个函数void function(Student a[], int n, Student *s),其功能时:已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中 ...

  3. 现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数...

    现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数. 方法1:Hash链表 方法2:使用两个变量A和B,其中A存储某个数组中的数,B用来计数.开始时将B初始化为0 ...

  4. python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配...

    已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接 ...

  5. C语言编程题—结构体—设计程序,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分

    4 C语言编程题--结构体 **设计程序,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中.请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有 ...

  6. C语言编程>第十二周 ③ 已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数。

    已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中.请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分).已给出函数的首部,请完成该函 ...

  7. 假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。

    2017年软件设计师上半场下午题目 [说明] 假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻.现只有一个天平,要求用尽量少的比较次数找出这枚假币. [分析问题] 将n枚硬币分成相等的两部分 ...

  8. python 已知一个字符,在一个list中找出近似值或相似值, 模糊匹配

    已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接 ...

  9. 知哈希算法——找出相似的图片

    知哈希算法--找出相似的图片 感知哈希算法--找出相似的图片 - Create Chen - 博客园 知哈希算法--找出相似的图片 Google 图片搜索功能 在谷歌图片搜索中, 用户可以上传一张图片 ...

最新文章

  1. java正则表达式及api_JAVA常用API:正则表达式regular expression
  2. IPV6地址校验(java)
  3. Openstack入门篇(十一)之neutron服务(控制节点)的部署与测试
  4. Macbook换SSD硬盘 备份OS、Win10双系统 完全攻略
  5. CTF--Do you like xml
  6. matlab的kron函数(kronecker乘积)
  7. linux第一周作业
  8. 浅谈Spring @Order注解的使用
  9. Mybatis中利用PageHelp分页功能的实现
  10. 支付宝小程序、百度小程序、微信小程序、今日头条小程序技术分析
  11. 常见的网络攻击方法与防范措施
  12. Twitterrific for Mac(Twitter客户端)
  13. 面试技巧-面试官的考题
  14. 固态硬盘是什么接口_固态硬盘那么多接口该怎么选?今天就和大家聊聊
  15. 如何修改PDF中图片的大小尺寸
  16. 蓄电池内阻测试仪分析软件,进口蓄电池内阻测试仪
  17. 链接数据库明明有值,但是取到的是空
  18. 用word2013发布csdn博客
  19. JS 按字符串长度切割字符串(支持汉字占2个长度)
  20. Python异步 asyncio 异步文件下载

热门文章

  1. i++与++i是什么意思?
  2. 数据结构与算法——每日一练(4月)
  3. python学习--模型过拟合查看learning curve
  4. 42道最新java开发常见面试题:JavaSE基础知识
  5. office2013
  6. 播放器ocx插件——自动获取MP3时长
  7. 计算机中,为什么一个字节是8位?
  8. iphone上安装android系统,如何在iPhone上安装Android操作系统?
  9. Godaddy域名A记录解析详细教程
  10. 什么是大数据公司面临的问题以及如何使用大数据解决