Python面试题之爬虫(数据库)

爬虫

知识点:
  • 整理 爬虫面试题

  • 添加 爬虫的代码

  • 加深 爬虫的理解

  • 版本 python3.6


1. 试列出至少三种目前流行的大型数据库的名称

  • Oracle
  • Mysql
  • MongoDB
  • SQLServer

根据自己情况(推荐Mysql 、MongoDB)


2. 爬取数据后使用哪个数据库存储数据的,为什么?

  • 一般爬虫使用的数据库,是根据项目来定的。如需求方指定了使用什么数据库、如果没指定,那么决定权就在爬虫程序员手里,如果自选的话,mysql和mongodb用的都是比较多的。
  • 如果抓取的数据之间的耦合性很高,关系比较复杂的话,那么mysql可能会是更好的选择。
  • 如果抓取的数据是分版块的,并且它们之间没有相似性或关联性不强,那么可能mongodb会更好。
  • 总结就是:数据库的选择尽量从项目的数据存在的特性来考虑,还有一个问题就是开发人员最擅长那种数据库。

目前大多数公司基本是使用MongoDB,下面讲讲MongoDB的优点


3. MongoDB的优点

要说MongoDB优点最好联合Mysql比较说明好点,免得面试官再来问你为什么不选Mysql

先介绍一下MongoDB

  • 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。
  • 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
  • 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
  • 是一个面向文档的数据库,目前由10gen开发并维护,它的功能丰富齐全,所以完全可以替代MySQL。

总结就是:面向文件,高性能,高可用,易扩展,丰富的查询语言,对数据存储友好

MySQL等关系型数据库相比,MongoDB的优点如下:

  • 弱一致性(最终一致),更能保证用户的访问速度。
  • 文档结构的存储方式,能够更便捷的获取数据。
  • 内置GridFS,支持大容量的存储。
  • 内置Sharding。
  • 第三方支持丰富。
  • 性能优越

如果说到这里面试官还不满意的话,还可以说说跟Redis的比较,但是遇到奇葩的面试官就另当别论了,我有次面试,技术主管最后问的一个问题就是问我为什么选择MongoDB,我作为求职的态度肯定说怎么怎么好,优点有哪些,但是,我说一个优点,面试官就打断我一下说这不是选择它的理由,当时也是给我说急了,就反问他为什么选择,人事看我有点情绪了就中断面试叫我回去等消息,结果肯定是被pass了,我不建议这样,不过有时候实在不知道的可以虚心请教一下面试官,态度好点是没问题的

如果公司比较注重MongoDB,大概率会问一下简单的语法和数据使用

4. mongodb的简单使用

  • 查看当前的数据库:db(没有切换数据库的情况下默认使用test数据库)
  • 查看所有的数据库:show dbs /show databases
  • 切换数据库:use db_name
  • 删除当前的数据库:db.dropDatabase()

一般问增删改查还是比较少,实操可能会,平时没事可以练几句语法就行,实际工作中,数据清洗还是比较重要的

基础类的提问能回答多少是多少,面试不是高考,不要求字字到位,有时候说说自己对相关问题的理解会更好,把面试当成学习的过程,即使不成你也知道哪块不足,成功也不能骄傲,比你牛的多如牛毛,选择你大概率是因为人事要填坑,找准定位,保持一颗平常心,技术人要为才而生,下一篇讲一下爬虫相关的基础模块,未完待续…

你可能感兴趣的:(Python面试题之爬虫(数据库))