如何从零基础开始写一个关于搜索知乎答案的python爬虫

 我来答
杜爷1号
2015-08-10 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9185
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部
首先来说爬虫。
关于爬虫一个不太严谨的理解就是,你可以给爬虫程序设定一个初始的目标页面,然后程序返回目标页面的HTML文档后,从中提取页面中的超链接,然后继续爬到下一个页面中去。从这些页面的HTML文档中可以通过对标签的处理解析出你想要的具体内容。

所以我们可以这么来简单定义一个爬虫的工作过程:
抓取目标页面
解析页面文档获得目的信息
继续爬取下一个页面
存储结果

为了实现这些工作,你需要学习一些常用库的简单用法,包括但不限于:
urllib、urllib2、urllib.request、cookilib (Python的内置库,用来处理HTTP请求)
requests (第三方库,推荐使用requests来处理请求,比urllib方便一些)
re、beautifulsoup (正则表达式匹配内容、bs4解析html文档)

其次呢,因为你要跟网页的源码打交道,尤其是解析HTML文档,所以你最好对HTML和浏览器通信有点简单的了解,会使用Firebug查看源码定位信息在源码中的位置。

落实到题主给出的示例
http://www.zhihu.com/topic/19554091/questions?page=1

这是知乎数学话题全部问题的URL构成。可以看到我们只要修改最后的数字就可以访问到不同的页数。
数学话题下一共有1254页。所以你可以通过简单的对page做循环遍历获得所有问题。
(这种做法是直接构造了地址,或者你可以在爬取每一页以后从页面中得到下一页的链接,这样更像是一个爬虫)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式