文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
14.1 创建知乎爬虫
在开始编程之前,我们首先需要根据项目需求对知乎网站进行分析。首先确定一下爬取用户的信息以及人际关系的位置,如图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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论