Python实现爬取知乎神回复

这篇文章主要介绍了Python实现爬取知乎神回复简单爬虫代码分享,本文实现了爬取知乎的“如何正确地吐槽”收藏夹,是对个人的一个兴趣实现,需要的朋友可以参考下。

看知乎的时候发现了一个 “如何正确地吐槽” 收藏夹,里面的一些神回复实在很搞笑,但是一页一页地看又有点麻烦,而且每次都要打开网页,于是想如果全部爬下来到一个文件里面,是不是看起来很爽,并且随时可以看到全部的,于是就开始动手了。

工具

  1. Python 2.7 2.BeautifulSoup

分析网页

我们先来看看知乎上该网页的情况。

网址:

http://www.zhihu.com/collection/27109279?page=1

容易看到,网址是有规律的,page慢慢递增,这样就能够实现全部爬取了。

再来看一下我们要爬取的内容:

我们要爬取两个内容:问题和回答,回答仅限于显示了全部内容的回答,如下面这种就不能爬取,因为好像无法展开(反正我不会。。),再说答案不全的话爬来也没用,所以就不爬答案不全的了吧。

好,那么下面我们要找到他们在网页源代码中的位置:

即我们找到问题的内容包含在<h2 class = "zm-item-title"><a tar...>中,那么我们等会就可以在这个标签里面找问题。

然后是回复:

有两个地方都有回复的内容,因为上面那个的内容还包括了<span..>等一些内容,不方便处理,我们爬下面那个的内容,因为那个里面的内容纯正无污染。

代码

好,这时候我们试着写出python代码:

代码如下:

# -*- coding: cp936 -*- import urllib2 from BeautifulSoup import BeautifulSoup

f = open('howtoTucao.txt','w') #打开文件

for pagenum in range(1,21): #从第1页爬到第20页

strpagenum = str(pagenum) #页数的str表示 print "Getting data for Page " + strpagenum #shell里面显示的,表示已爬到多少页 url = "http://www.zhihu.com/collection/27109279?page="+strpagenum #网址 page = urllib2.urlopen(url) #打开网页 soup = BeautifulSoup(page) #用BeautifulSoup解析网页 #找到具有class属性为下面两个的所有Tag ALL = soup.findAll(attrs = {'class' : ['zm-item-title','zh-summary summary clearfix'] })

for each in ALL : #枚举所有的问题和回答 #print type(each.string) #print each.name if each.name == 'h2' : #如果Tag为h2类型,说明是问题 print each.a.string #问题中还有一个<a..>,所以要each.a.string取出内容 if each.a.string: #如果非空,才能写入 f.write(each.a.string) else : #否则写"No Answer" f.write("No Answer") else : #如果是回答,同样写入 print each.string if each.string: f.write(each.string) else : f.write("No Answer") f.close() #关闭文件

代码虽然不长,可是写了我半天。

运行

然后我们运行就可以爬了:

结果

等运行完毕,我们打开文件howtoTucao.txt,可以看到,这样就爬取成功了。只是格式可能还是有点问题,原来是我No Answer没加换行,所以No Answer还会混到文本里面去,加两个换行就可以了。

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-05-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

Python批量导入图片生成能治疗颈椎病的HTML5版课件

本文要点:Python文件操作,HTML5的figure元素和CSS3属性的用法。 说明:1):本文图片来自于相关阅读中Python批量导出多个PPT/PPTX...

2644
来自专栏菩提树下的杨过

silverlight3的"伪"3D续--图片横向轮换

上一篇里,已经知道了“伪3D”是怎么回事,今天结合以前的做的图片广告轮换,又弄了一个图片切换的小东东,不知道以后有什么用,先贴在这里备份: 效果图: ? 因为s...

1859
来自专栏姬小光

姬小光前端兴趣班【第010期】- 浏览器开发工具

前面几期我们学习了切图大法,我相信只要你认真学完,就可以立即派上用场。比如可以将你喜欢的图片切成个人主页,也可以将贺卡图片做成带链接的邮件等等。

602
来自专栏数据小魔方

think-cell chart系列19——任务甘特图

今天跟大家分享think-cell chart系列19——任务甘特图。 甘特图在之前的教程中曾经讲过,当时是在excel中制作完成的,花费了相当多的时间和功夫。...

3927
来自专栏我和未来有约会

Silverlight SEO优化

Silverlight SEO优化 SEO优化 2008年10月份,微软发布了针对Silverlight应用程序进行搜索引擎优化的指导文档,该文档描述了对Si...

1735
来自专栏程序员宝库

从0开始发布一个无依赖、高质量的键盘npm包

没有发布过npm包的同学,可能会对NPM对开发有一种蜜汁敬畏,觉得这是一个很高大上的东西。甚至有次面试,面试官问我有没有发过npm包,当时只用过还没写过,我想应...

921
来自专栏快乐八哥

Web Fundamentsals学习1-Multiple-Screen-Site

你的一个运行于多设备网站(Your First Multi-device Site) ? 遵循的步骤: 1.定义信息架构(information archite...

1779
来自专栏极乐技术社区

微信小程序开发小技巧合揖(53个)

微信小程序:wx.navigateTo中url无法跳转问:链接 微信小程序布局之行内元素和块级元素:链接 小程序端JS加密,传输PHP端解密:链接 小程序开发干...

2869
来自专栏数据之美

文本编辑利器Notepad++ 10个强大而又鲜为人知的特性

Notepad++ 顾名思义就是 windows 内置 Notepad 的增强版,它采用 C++ 编写,性能优秀,不仅小巧(完整安装包仅 3.8MB),功能众多...

2319
来自专栏SEO

这9种URL错误对SEO优化有致命影响

2596

扫描关注云+社区