项目地址:zhihu-api
事情的初衷是这样的:我想编写一个知乎的爬虫,用来抓取问题、回答以及用户的信息,从而进行一些简答的数据分析。因为知乎官方并没有提供开放API,所有只能自己抓页面来解析了。
很早以前写过一个非常简单的知乎爬虫(有Node和Python版本),后来发现并不好用。一是当时代码结构确实比较乱,不利于扩展和维护;二是知乎页面的DOM结构发生了一些变化(例如元素的class等)。
我的想法是该项目只实现基础的数据接口,而不去实现复杂的数据抓取逻辑(例如广度/深度优先抓取用户网络),从而增强项目的复用性和扩展性。
整体逻辑是使用cookie模拟登陆,然后抓取页面,解析页面,最终返回JSON格式的数据。目前的依赖模块为request和cheerio。所有的接口都是Promise风格。
目前只实现了问题和用户的一些基础接口,还有很多工作要做。欢迎感兴趣的朋友贡献代码。