返回介绍

14.1 创建知乎爬虫

发布于 2024-01-26 22:39:51 字数 1505 浏览 0 评论 0 收藏 0

在开始编程之前,我们首先需要根据项目需求对知乎网站进行分析。首先确定一下爬取用户的信息以及人际关系的位置,如图14-1所示。

图14-1 用户的信息和人际关系

如上图所示,用户信息主要是提取其中的用户昵称、住址、所在领域、公司、职位和教育经历、用户关注人数和被关注人数。人际关系需要提取用户所关注的人的id和被关注的人的id,并和用户自身id绑定,点击“关注了”链接,可以看到关注的用户信息,如图14-2所示。

图14-2 用户的信息和人际关系

接着发现用户信息和提取人际关系,需要用户登录之后,才能进行操作,所以首先需要模拟登录操作,如图14-3所示。

在查看人际关系的过程中,发现图14-2中关注人信息是动态加载的,每次加载20条,如图14-4所示。也就是说我们需要模拟动态加载的过程,可以抓包分析请求过程。

图14-3 知乎登录

图14-4 动态加载

通过上面的分析,将整个抓取项目的流程进行分析,如图14-5所示。

首先完成登录操作,获取cookie信息,接着从起始url中解析出用户信息,然后进入关注者界面和被关注者界面,提取关系用户ID和新的用户链接,将用户信息和关系用户ID存储到MongoDB中,将新的用户链接交给用户信息解析模块,依次类推,完成循环抓取任务。

以上将整个知乎爬虫项目的流程分析完成,编程可以正式开始了。首先在命令行中切换到用于存储项目的路径,然后输入以下命令创建知乎爬虫项目和爬虫模块:

图14-5 项目流程

  scrapy startproject zhihuCrawl
  cd zhihuCrawl
  scrapy genspider -t crawl zhihu.com zhihu.com

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文