【原】【爬虫系列】简要获取一下知乎的最热门话题相关主题及描述信息
最近看下爬虫方面,用一些通用的做一些小的实验。都是比较基础的代码,高手请跳过。
说明
这里只是实现获取知乎每日/每月最热问题的一个基本的小功能(https://www.zhihu.com/explore)
具体步骤
访问知乎的发现主页,获取html文本
分析html文本,找出今日最热和本月最热的html特征
解析html代码,拿到所有满足条件的链接
拿到链接的文本,并打印
分析html代码
<a class="question_link" href="/question/30359991/answer/401771701" target="_blank" data-id="4326359" data-za-element-name="Title"> 心算可以算出羽毛球的落点吗? </a>
稍微分析一下可以看出,我们只需要拿到所有class=“question_link”的a标签就可以了。
代码
# coding:utf-8 #!/usr/bin/python # @Time :18-5-29 下午2:12 # @Author :Hao Chuang
# @Site :http://cnblogs.com/haochuang # @Wechat :nianhuaiju # @File :zhihu-hot.py # @Software :PyCharm Community Edition # zhihu.py import requests from bs4 import BeautifulSoup url = 'https://www.zhihu.com/explore' url_day = 'https://www.zhihu.com/explore#daily-hot' url_month = 'https://www.zhihu.com/explore#monthly-hot' headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'} def get_url_hot(): soup = url_set(url) # getTitle for link in soup.find_all('a', class_='question_link'): print(link.text) printstar(50) # get hot number for hotnum in soup.find_all('a', class_='zm-item-vote-count js-expand js-vote-count'): print(hotnum.text) printstar(50) # get author for author in soup.find_all('a', class_='author-link'): print (author.text) printstar(50) # get user type for usertype in soup.find_all('span', class_="badge-summary"): print (usertype.text) printstar(50) # get user desc for usertitle in soup.find_all('span', class_="badge-summary"): print (usertitle.text) printstar(50) # 获取热门话题内容 for contextdesc in soup.find_all('div', class_="zh-summary summary clearfix"): print (contextdesc.text) printstar(50) # 评论数量 for commentnum in soup.find_all('a', class_="meta-item toggle-comment js-toggleCommentBox"): print (commentnum.text) def get_url_day_hot(): soup = url_set(url_day) # getTitle for link in soup.find_all('a', class_='question_link'): print(link.text) printstar(50) # get hot number for hotnum in soup.find_all('a', class_='zm-item-vote-count js-expand js-vote-count'): print(hotnum.text) printstar(50) # get author for author in soup.find_all('a', class_='author-link'): print (author.text) printstar(50) # get user type for usertype in soup.find_all('span', class_="badge-summary"): print (usertype.text) printstar(50) # get user desc for usertitle in soup.find_all('span', class_="badge-summary"): print (usertitle.text) printstar(50) # 获取热门话题内容 for contextdesc in soup.find_all('div', class_="zh-summary summary clearfix"): print (contextdesc.text) printstar(50) # 评论数量 for commentnum in soup.find_all('a', class_="meta-item toggle-comment js-toggleCommentBox"): print (commentnum.text) def get_url_month_hot(): soup = url_set(url_month) # getTitle for link in soup.find_all('a', class_='question_link'): print(link.text) printstar(50) # get hot number for hotnum in soup.find_all('a', class_='zm-item-vote-count js-expand js-vote-count'): print(hotnum.text) printstar(50) # get author for author in soup.find_all('a', class_='author-link'): print (author.text) printstar(50) # get user type for usertype in soup.find_all('span', class_="badge-summary"): print (usertype.text) printstar(50) # get user desc for usertitle in soup.find_all('span', class_="badge-summary"): print (usertitle.text) printstar(50) # 获取热门话题内容 for contextdesc in soup.find_all('div', class_="zh-summary summary clearfix"): print (contextdesc.text) printstar(50) # 评论数量 for commentnum in soup.find_all('a', class_="meta-item toggle-comment js-toggleCommentBox"): print (commentnum.text) printstar(50) def printstar(num): print '*' * num def url_set(url_): soup = BeautifulSoup(requests.get(url_, headers=headers).text, 'html.parser') return soup if __name__ == '__main__': printstar(100) get_url_hot() printstar(100) get_url_day_hot() printstar(100) get_url_month_hot()
运行
我使用Pycharm,直接CTRL+SHIFT+F10,运行,当然,你也可以在命令行中运行:python zhihu.py
结果如下:
/usr/bin/python2.7 /media/hao/000804B800006CAD/2018/BG/CODE/HaoCodes/Spider/baidu-music-spider-master/baidu-music-spider-master/testclass-net/zhihu-hot.py **************************************************************************************************** 涡扇发动机属于机械增压还是涡轮增压? 量化策略在风控方面有哪些常用的套路? 2020-2030 年,PHEV 车型的前景会怎样? 生物学中有哪些好玩的知识? 心算可以算出羽毛球的落点吗? 星系群和星系团、超星系团一般是怎样的结构? 为什么中国没有形成超大型的内陆湖? 减肥期间有哪些低脂又好吃方便的东西? 你见过最假、最差劲的图片处理是什么样的? 如何评价易烊千玺在《这就是街舞》第十期说的那句“我没有”? 如何长时间高效学习? 在这就是街舞中,为什么亮亮(胡浩亮)会选择易烊千玺战队? 如何评价「王俊凯工作室批《高能少年团》不当剪辑 要求道歉」? 防弹少年团成员们的出道经历是怎样的? ************************************************** 2395 425 932 3107 2525 8397 214 344 1386 310 ************************************************** 卢西 梁昊 黄崧 云舞空城 霸霸 唐律疏议 长头发的狗 混世老巫婆六六 青柠 喜欢珍珍 ************************************************** 物理学话题优秀回答者 天文学、天体物理学话题优秀回答者 地质学、地球科学话题优秀回答者 ************************************************** 物理学话题优秀回答者 天文学、天体物理学话题优秀回答者 地质学、地球科学话题优秀回答者 ************************************************** 涡扇发动机全称涡轮风扇喷气发动机,名字里面带了个涡轮。这么分类的话那肯定是涡轮增压了,其实航空发动机的涡轮和汽车发动机涡轮基础原理是一样的,当然也有很多不同的地方,我后面解释。首先,那什么是机械增压呢?机械增压长这样,两根轴上的齿数不一样… 前几天老板在群里随手转了一篇文献我不知怎么就想起了这个老梗【强烈建议一脸懵逼的围观群众先去看问题描述】,于是就有了这个回答我们首先得向读者普及一下流体力学最重要的概念之一,雷诺数Re = \frac{\rho U D}{\eta},式子中 \rho 代表流体密度, \eta … 显示全部 问题里的图是我们所处的大尺度结构中星系速度场的一个巧妙可视化,严格意义上不代表这个“超星系团”的物质分布结构。既然问了这三个概念,后面多废话几句吧,普及一下这几个定义的现代观点。星系群 (Group),星系团 (Cluster), 超星系团 (Supercluster) 都… 显示全部 有过,只不过后来都变平原了。保不齐过些时候又变成湖,几个Ma的事儿而已。 中国的纬度无法在第四纪冰期中形成五大湖那种冰川湖,所以只能看构造湖。上图绿色的地方,地质历史时期里都曾经是大湖或者在其范围内有过大湖,海岸线以外的不算。什么白垩纪的松… 显示全部 首先说一下我的理念,减肥一定要吃饱!大部分需要减肥的人都是缺乏毅力的,经常处在饥饿状态的话很难坚持到底。不要高估自己的毅力。 其次减肥餐一定要好吃,减肥路上遍布荆棘,路边摊垃圾食品唾手可得,诱人的外卖招手即来,所以一定要把减肥餐做的非常好吃… 显示全部 多年前,我的审美还未开蒙,还没入手单反,不会ps,也对化妆、穿搭、清新人像一无所知。我选了一家街头摄影工作室拍了几组写真,拍出了“廉价的华丽”、“知性的老知青”、“乡间的唯美”等等各种顶尖的风格。和那些年非主流的大头贴比起来,这种写真因其专… 显示全部 【纯感想|无干货|看了节目对这句话无感的盆友请不要进来浪费时间】(5月3号)好几天了,热度还是没有散,不知道是知乎易烊千玺粉丝太多,还是这孩子路人缘太好。我收到这么多赞,还被微博营销号转载了,诚惶诚恐。也不知道我们这些路人的感想要是传到易烊千… 显示全部 看了好多人的答案,都还写的挺好的,有些答案还提了好多专有名词,不过我觉得最关键的点是如何用通俗易懂的语言,让大家有效地执行、高效地学习。先来明确一下为什么要高效学习?我们要找到最合适自己的学习方法,在相对短的时间内集中注意力,以解决一个工… 显示全部 看完这就是街舞第十期,有了些自己的猜想。 亮亮被淘汰的时候,导演问千玺有什么话要说,他淡然的说了句“我没有”,然后走过去和亮亮拥抱告别。 那一瞬间我觉得他们俩都在对方身上看到了自己,同样善良谦和,有胜负欲也输得起,看透了周围世界的运转规则,… 显示全部 1王俊凯工作室和王俊凯本人都不是那种因为屁大点事就撂挑子的人,这次确实触及了底线。2高能少年团第二季的签约,王俊凯本来是最后一个,当时有别的节目也在接洽他,高能大打人情牌,王俊凯基于对合作过一季的节目组的信任和与其他mc之间的情义续约。然而节… 显示全部 补充一些我知道的吧,我很喜欢搜集防弹初期的那些小故事嘻嘻。 金南俊。1.小时候因为心脏病差点有生命危险;2.智商是真的高,哪怕平时不学习,只要考试前一周把市面上的练习册买回来做一遍就还是能考全班第一;3.曾经想过不论如何努力搞音乐还是不行的话就把… 显示全部 ************************************************** 241 条评论 24 条评论 122 条评论 219 条评论 291 条评论 361 条评论 9 条评论 42 条评论 115 条评论 42 条评论 **************************************************************************************************** 涡扇发动机属于机械增压还是涡轮增压? 量化策略在风控方面有哪些常用的套路? 2020-2030 年,PHEV 车型的前景会怎样? 生物学中有哪些好玩的知识? 心算可以算出羽毛球的落点吗? 星系群和星系团、超星系团一般是怎样的结构? 为什么中国没有形成超大型的内陆湖? 减肥期间有哪些低脂又好吃方便的东西? 你见过最假、最差劲的图片处理是什么样的? 如何评价易烊千玺在《这就是街舞》第十期说的那句“我没有”? 如何长时间高效学习? 在这就是街舞中,为什么亮亮(胡浩亮)会选择易烊千玺战队? 如何评价「王俊凯工作室批《高能少年团》不当剪辑 要求道歉」? 防弹少年团成员们的出道经历是怎样的? ************************************************** 2395 425 932 3110 2525 8397 214 344 1386 310 ************************************************** 卢西 梁昊 黄崧 云舞空城 霸霸 唐律疏议 长头发的狗 混世老巫婆六六 青柠 喜欢珍珍 ************************************************** 物理学话题优秀回答者 天文学、天体物理学话题优秀回答者 地质学、地球科学话题优秀回答者 ************************************************** 物理学话题优秀回答者 天文学、天体物理学话题优秀回答者 地质学、地球科学话题优秀回答者 ************************************************** 涡扇发动机全称涡轮风扇喷气发动机,名字里面带了个涡轮。这么分类的话那肯定是涡轮增压了,其实航空发动机的涡轮和汽车发动机涡轮基础原理是一样的,当然也有很多不同的地方,我后面解释。首先,那什么是机械增压呢?机械增压长这样,两根轴上的齿数不一样… 前几天老板在群里随手转了一篇文献我不知怎么就想起了这个老梗【强烈建议一脸懵逼的围观群众先去看问题描述】,于是就有了这个回答我们首先得向读者普及一下流体力学最重要的概念之一,雷诺数Re = \frac{\rho U D}{\eta},式子中 \rho 代表流体密度, \eta … 显示全部 问题里的图是我们所处的大尺度结构中星系速度场的一个巧妙可视化,严格意义上不代表这个“超星系团”的物质分布结构。既然问了这三个概念,后面多废话几句吧,普及一下这几个定义的现代观点。星系群 (Group),星系团 (Cluster), 超星系团 (Supercluster) 都… 显示全部 有过,只不过后来都变平原了。保不齐过些时候又变成湖,几个Ma的事儿而已。 中国的纬度无法在第四纪冰期中形成五大湖那种冰川湖,所以只能看构造湖。上图绿色的地方,地质历史时期里都曾经是大湖或者在其范围内有过大湖,海岸线以外的不算。什么白垩纪的松… 显示全部 首先说一下我的理念,减肥一定要吃饱!大部分需要减肥的人都是缺乏毅力的,经常处在饥饿状态的话很难坚持到底。不要高估自己的毅力。 其次减肥餐一定要好吃,减肥路上遍布荆棘,路边摊垃圾食品唾手可得,诱人的外卖招手即来,所以一定要把减肥餐做的非常好吃… 显示全部 多年前,我的审美还未开蒙,还没入手单反,不会ps,也对化妆、穿搭、清新人像一无所知。我选了一家街头摄影工作室拍了几组写真,拍出了“廉价的华丽”、“知性的老知青”、“乡间的唯美”等等各种顶尖的风格。和那些年非主流的大头贴比起来,这种写真因其专… 显示全部 【纯感想|无干货|看了节目对这句话无感的盆友请不要进来浪费时间】(5月3号)好几天了,热度还是没有散,不知道是知乎易烊千玺粉丝太多,还是这孩子路人缘太好。我收到这么多赞,还被微博营销号转载了,诚惶诚恐。也不知道我们这些路人的感想要是传到易烊千… 显示全部 看了好多人的答案,都还写的挺好的,有些答案还提了好多专有名词,不过我觉得最关键的点是如何用通俗易懂的语言,让大家有效地执行、高效地学习。先来明确一下为什么要高效学习?我们要找到最合适自己的学习方法,在相对短的时间内集中注意力,以解决一个工… 显示全部 看完这就是街舞第十期,有了些自己的猜想。 亮亮被淘汰的时候,导演问千玺有什么话要说,他淡然的说了句“我没有”,然后走过去和亮亮拥抱告别。 那一瞬间我觉得他们俩都在对方身上看到了自己,同样善良谦和,有胜负欲也输得起,看透了周围世界的运转规则,… 显示全部 1王俊凯工作室和王俊凯本人都不是那种因为屁大点事就撂挑子的人,这次确实触及了底线。2高能少年团第二季的签约,王俊凯本来是最后一个,当时有别的节目也在接洽他,高能大打人情牌,王俊凯基于对合作过一季的节目组的信任和与其他mc之间的情义续约。然而节… 显示全部 补充一些我知道的吧,我很喜欢搜集防弹初期的那些小故事嘻嘻。 金南俊。1.小时候因为心脏病差点有生命危险;2.智商是真的高,哪怕平时不学习,只要考试前一周把市面上的练习册买回来做一遍就还是能考全班第一;3.曾经想过不论如何努力搞音乐还是不行的话就把… 显示全部 ************************************************** 241 条评论 24 条评论 122 条评论 219 条评论 291 条评论 361 条评论 9 条评论 42 条评论 115 条评论 42 条评论 **************************************************************************************************** 涡扇发动机属于机械增压还是涡轮增压? 量化策略在风控方面有哪些常用的套路? 2020-2030 年,PHEV 车型的前景会怎样? 生物学中有哪些好玩的知识? 心算可以算出羽毛球的落点吗? 星系群和星系团、超星系团一般是怎样的结构? 为什么中国没有形成超大型的内陆湖? 减肥期间有哪些低脂又好吃方便的东西? 你见过最假、最差劲的图片处理是什么样的? 如何评价易烊千玺在《这就是街舞》第十期说的那句“我没有”? 如何长时间高效学习? 在这就是街舞中,为什么亮亮(胡浩亮)会选择易烊千玺战队? 如何评价「王俊凯工作室批《高能少年团》不当剪辑 要求道歉」? 防弹少年团成员们的出道经历是怎样的? ************************************************** 2395 425 932 3110 2526 8397 214 344 1386 310 ************************************************** 卢西 梁昊 黄崧 云舞空城 霸霸 唐律疏议 长头发的狗 混世老巫婆六六 青柠 喜欢珍珍 ************************************************** 物理学话题优秀回答者 天文学、天体物理学话题优秀回答者 地质学、地球科学话题优秀回答者 ************************************************** 物理学话题优秀回答者 天文学、天体物理学话题优秀回答者 地质学、地球科学话题优秀回答者 ************************************************** 涡扇发动机全称涡轮风扇喷气发动机,名字里面带了个涡轮。这么分类的话那肯定是涡轮增压了,其实航空发动机的涡轮和汽车发动机涡轮基础原理是一样的,当然也有很多不同的地方,我后面解释。首先,那什么是机械增压呢?机械增压长这样,两根轴上的齿数不一样… 前几天老板在群里随手转了一篇文献我不知怎么就想起了这个老梗【强烈建议一脸懵逼的围观群众先去看问题描述】,于是就有了这个回答我们首先得向读者普及一下流体力学最重要的概念之一,雷诺数Re = \frac{\rho U D}{\eta},式子中 \rho 代表流体密度, \eta … 显示全部 问题里的图是我们所处的大尺度结构中星系速度场的一个巧妙可视化,严格意义上不代表这个“超星系团”的物质分布结构。既然问了这三个概念,后面多废话几句吧,普及一下这几个定义的现代观点。星系群 (Group),星系团 (Cluster), 超星系团 (Supercluster) 都… 显示全部 有过,只不过后来都变平原了。保不齐过些时候又变成湖,几个Ma的事儿而已。 中国的纬度无法在第四纪冰期中形成五大湖那种冰川湖,所以只能看构造湖。上图绿色的地方,地质历史时期里都曾经是大湖或者在其范围内有过大湖,海岸线以外的不算。什么白垩纪的松… 显示全部 首先说一下我的理念,减肥一定要吃饱!大部分需要减肥的人都是缺乏毅力的,经常处在饥饿状态的话很难坚持到底。不要高估自己的毅力。 其次减肥餐一定要好吃,减肥路上遍布荆棘,路边摊垃圾食品唾手可得,诱人的外卖招手即来,所以一定要把减肥餐做的非常好吃… 显示全部 多年前,我的审美还未开蒙,还没入手单反,不会ps,也对化妆、穿搭、清新人像一无所知。我选了一家街头摄影工作室拍了几组写真,拍出了“廉价的华丽”、“知性的老知青”、“乡间的唯美”等等各种顶尖的风格。和那些年非主流的大头贴比起来,这种写真因其专… 显示全部 【纯感想|无干货|看了节目对这句话无感的盆友请不要进来浪费时间】(5月3号)好几天了,热度还是没有散,不知道是知乎易烊千玺粉丝太多,还是这孩子路人缘太好。我收到这么多赞,还被微博营销号转载了,诚惶诚恐。也不知道我们这些路人的感想要是传到易烊千… 显示全部 看了好多人的答案,都还写的挺好的,有些答案还提了好多专有名词,不过我觉得最关键的点是如何用通俗易懂的语言,让大家有效地执行、高效地学习。先来明确一下为什么要高效学习?我们要找到最合适自己的学习方法,在相对短的时间内集中注意力,以解决一个工… 显示全部 看完这就是街舞第十期,有了些自己的猜想。 亮亮被淘汰的时候,导演问千玺有什么话要说,他淡然的说了句“我没有”,然后走过去和亮亮拥抱告别。 那一瞬间我觉得他们俩都在对方身上看到了自己,同样善良谦和,有胜负欲也输得起,看透了周围世界的运转规则,… 显示全部 1王俊凯工作室和王俊凯本人都不是那种因为屁大点事就撂挑子的人,这次确实触及了底线。2高能少年团第二季的签约,王俊凯本来是最后一个,当时有别的节目也在接洽他,高能大打人情牌,王俊凯基于对合作过一季的节目组的信任和与其他mc之间的情义续约。然而节… 显示全部 补充一些我知道的吧,我很喜欢搜集防弹初期的那些小故事嘻嘻。 金南俊。1.小时候因为心脏病差点有生命危险;2.智商是真的高,哪怕平时不学习,只要考试前一周把市面上的练习册买回来做一遍就还是能考全班第一;3.曾经想过不论如何努力搞音乐还是不行的话就把… 显示全部 ************************************************** 241 条评论 24 条评论 122 条评论 219 条评论 291 条评论 361 条评论 9 条评论 42 条评论 115 条评论 42 条评论 **************************************************
这只是一个比较简单的示例,还可以优化,后续我在继续搞下

赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?