Python 开发实习面试准备 - Grained.AI

Python 软件开发实习生面试准备(公司要求梳理篇)

一、基础资质类

问题 1:该岗位要求的学历及专业背景是?

回答:计算机相关专业在读本科生或者研究生,我是北华大学大三本科生。

问题 2:你是否符合计算机相关专业在读这一基本条件呀,简单说下你的专业和在读阶段?

回答:符合,我是北华大学计算机相关专业大三本科生。

二、核心技能类

(1)编程语言

问题 3:岗位要求 “熟练使用 Python”,你觉得自己在 Python 技能上,哪些场景应用得比较好?比如数据处理、爬虫开发,能举个具体项目 / 作业里用 Python 实现功能的例子吗?

回答:我最初用 python 是用来爬取北京新发地的菜价,当年很好爬取,后来我去爬取小说网,把斗罗大陆小说爬取下来,代码目前还存放在 1024code 平台上,不过是两年前的了。后来教学计划里有爬虫,我又爬取了一个小说网,针对这段代码做了软件测试,视频发布在了 b 站。第二次爬取小说网印象比较深,因为小说网做了文字的加密,我需要进行爬取后解密然后存储,再之后做了研招网的自动化爬虫,类似的项目还挺多,我仓库上传了一部分。

(2)爬虫框架

问题 4:提到 “了解 scrapy、selenium 等爬虫框架”,这两个框架你实际用过吗?

回答:研招网用到的就是 selenium,而 scrapy 我拿来做了两个项目。

问题 5(scrapy 细分):说说它的核心组件(如 Engine、Spider、Pipeline 等),以及用它做爬虫时,数据提取、请求调度的大致流程?

回答快速记忆口诀

  1. 组件关系Engine 调度,Spider 干活,Scheduler 排队,Downloader 跑腿,Pipeline 加工!
  2. 流程请求从 Spider 到 Scheduler,响应从 Downloader 到 Spider,数据从 Spider 到 Pipeline!

问题 6(selenium 细分):它适合处理什么样的爬虫场景(比如动态渲染页面)?使用时,如何模拟浏览器操作(如点击、输入),怎么处理元素等待问题?

回答

  1. 场景选择JS 渲染、登录验证、复杂交互 —— 选 Selenium!
  2. 操作步骤定位元素→执行操作→等待结果→处理异常!
  3. 等待策略优先显式等待,其次隐式等待,避免强制等待!

等待策略详解

  • 隐式等待:“我最多等 10 秒,期间我会时不时看一下,好了就立刻告诉我”;
  • 强制等待:“不管怎样,先让我发呆 10 秒,10 秒后再干活”。

为什么隐式等待不会被反爬识别?

  • 请求间隔不固定: 隐式等待的实际耗时由元素加载速度决定,可能是 1 秒、3 秒、7 秒,模拟了真实用户 “看到页面后再操作” 的自然间隔;
  • 非阻塞下可做其他事: 等待元素时,程序可同时处理其他任务(如记录日志、生成下一个请求),更接近人类多任务处理行为。

(3)数据库技术

问题 7:“了解 mysql、redis、elastic search、postgresql 等关系型 / 非关系型数据库技术优先”,针对这些数据库,先说说 MySQL,你用过它存储数据吗?简单说下建表语句、查询语句(比如单表查询、多表联查),以及优化查询性能的小技巧(如索引)?

回答:在关于爬虫项目里,我最多用到的就是 csv 或者 md 来存储数据,而数据库。则是我在学习 java 后端的时候一并学习的,但在爬虫项目体现较少,不过如简历所说,我以前做过 linkai 的一个插件,其中就是用到了 mysql。

问题 8(Redis 细分):它的基本数据结构(如 String、Hash、List)你了解不?什么场景下适合用 Redis 做缓存,怎么避免缓存穿透、雪崩问题?

回答

  1. 数据结构String 存配置,Hash 存对象,List 做队列,Set 去重,ZSet 排顺序!
  2. 缓存场景高频读、临时数据、分布式、复杂计算 —— 用 Redis!
  3. 避坑指南穿透加空值 / 布隆,雪崩随机过期 + 多级,击穿互斥锁 / 永不过期!

问题 9(Elasticsearch 细分):知道它的核心概念(如索引、文档、分片)吗?如果要实现全文搜索,大概怎么操作(比如创建索引、写入数据、执行查询)?

回答: Elasticsearch 是基于 Lucene 的分布式全文搜索引擎,核心概念包括:

  • 索引(Index):类似数据库,是存储相关文档的集合,每个索引有自己的映射(Mapping)定义字段类型。
  • 文档(Document):索引中的基本数据单元,以 JSON 格式存储,每个文档有唯一 ID。
  • 分片(Shard):索引的物理拆分单元,每个分片是一个独立的搜索引擎,支持分布式存储和并行查询,提高性能和可用性。

实现全文搜索的基本流程:

  1. 创建索引:定义索引名称和字段映射(如设置文本字段为可分词),确定分片和副本数量。
  2. 写入数据:将文档以 JSON 格式存入索引,Elasticsearch 自动对文本字段建立倒排索引。
  3. 执行查询:通过 DSL(Domain Specific Language)语法编写查询条件,例如用match进行全文匹配,或用filter进行精确过滤,结果以 JSON 格式返回。

问题 10(PostgreSQL 细分):和 MySQL 相比,它有哪些独特特性(如支持复杂数据类型、自定义函数)?你有没有简单接触或实践过?

回答: PostgreSQL(简称 PG)是功能强大的关系型数据库,与 MySQL 相比,独特特性包括:

  • 复杂数据类型:支持数组(如integer[])、JSON/JSONB、XML、几何类型(点、线、面)、范围类型(如时间范围)等,无需额外插件即可处理非结构化数据。
  • 自定义函数与扩展:支持用 PL/pgSQL、Python、Java 等语言编写自定义函数,甚至可创建新的数据类型和索引方法(如 GIN 索引)。
  • 高级事务特性:支持事务隔离级别(如可序列化)、保存点(Savepoint),事务完整性更强。
  • 空间数据与 GIS 支持:内置 PostGIS 扩展,原生支持地理空间数据的存储和查询,适合地图、位置服务等场景。
  • 全文搜索与复杂查询:支持针对文本的全文检索(如tsvector类型),以及窗口函数、递归查询等高级 SQL 特性。

PG 更偏向于 “企业级” 数据库,适合需要复杂数据类型、高扩展性或地理信息处理的场景,而 MySQL 在互联网场景中因轻量和易维护更普及。

(4)文档编写

问题 11:“熟练使用 Markdown 或 LaTeX 编写文档”,这两种工具你常用哪个?

回答:md 文档我接触很多年了,经常出现在我博客网站上面,而 latex 是我最近针对数学公式有要求而 md 满足不了我的需求才学习的,了解较浅,不过能够使用。

问题 12(Markdown 细分):用 Markdown 写过技术文档 / 报告吗?比如项目说明,怎么通过标题分级、列表、代码块让文档清晰易读?

回答

  • 标题分级:# 大章 ## 小节 ### 子点,逻辑清晰不混乱;
  • 列表分类:无序列要点,有序排步骤,嵌套分层次;
  • 代码突出:行内单引号,块用三引号,注释说明关键点;
  • 表格引用:对比用表格,重点加引用,链接跳转更方便。

问题 13(LaTeX 细分):若用 LaTeX,它在公式排版、专业文档格式控制上的优势你了解不?有没有用它写过带公式、图表的文档片段?

回答

  • 公式优势:复杂公式轻松写,编号引用自动跟,期刊格式一键得;
  • 格式控制:模板定结构,目录自动生,图表位置好管理;
  • 场景选择:专业论文用 LaTeX,快速笔记选 Markdown,公式复杂就切 LaTeX!

三、职责关联类

(1)数据生产研发与流程优化

问题 14:岗位要 “参与数据生产产品研发、流程优化与创新”,你理解的数据生产流程大概包含哪些环节(比如数据采集、处理、存储、标注)?如果让你优化流程,会从哪些角度切入(比如提效、降本、保证数据质量),能结合想法举个小例子吗?

回答:我会针对性的从被封 ip 的方面测试,测试多高的频率既不会被封 ip 也不会对服务器造成太大压力,又能满足项目需要。采用代理的方式,更改发送者满足要求,或降低频率。

(2)多模态数据采集与处理

问题 15:“使用自动化技术从公开网站或 API 采集多模态数据(文本、图像、视频等),并进行清洗和整理”,先说说文本数据,采集时,怎么处理反爬(如 User-Agent 伪装、IP 代理)?清洗时,常用哪些方法(如去重、去除特殊字符、分词),你用过哪些 Python 库(如 BeautifulSoup、正则、jieba)?

回答

  • 反爬三件套:UA 伪装、IP 代理、频率控制;

  • 清洗四步法:去重、滤符、分词、标准化;

  • 库函数速记

    1
    2
    3
    requests爬取,BeautifulSoup解析,
    re正则清洗,jieba分词处理,
    simhash去重,Tesseract打码。

问题 16(图像 / 视频数据细分):采集这类数据会遇到什么挑战(如数据量大、格式兼容)?清洗整理时,怎么处理分辨率、格式转换,有没有接触过 OpenCV 等工具?

回答

  1. 采集挑战量大分块存,格式用 FFmpeg 转,反爬加 Referer 和代理!
  2. OpenCV 操作resize 调尺寸,cvtColor 转格式,copyMakeBorder 填背景!
  3. 视频处理分段下载防中断,ffmpeg 分离音视频,合并用 concat 列表!

(3)团队协作与数据工作

问题 17:“协助团队完成数据标注、清洗及降噪工作”,数据标注常见类型(如分类、边界框标注)你了解吗?数据清洗除了常规去重、格式统一,怎么处理缺失值、异常值(比如用均值填充、删除异常记录)?数据降噪针对文本、图像数据,降噪有哪些方法(文本去停用词、图像滤波),你能简单说下思路不?

回答

  1. 标注类型分类框选分割点,序列标注文本间
  2. 缺失值处理删填插补模型算,统计量选均值众数
  3. 图像降噪滤波二值开运算,PSNR SSIM 来评判

四、软性条件类

问题 18:岗位要求 “具备良好的学习能力和团队合作精神”,请用两个具体例子分别说明:

  1. 学习能力:你在爬虫项目中遇到过从未接触过的技术(如小说网文字加密、研招网动态渲染),是如何快速学习并解决的?比如查资料的路径、实践步骤等。
  2. 团队合作:有没有在课程项目或小组作业中,和队友协作完成过数据相关任务(如一起爬取数据、清洗标注)?你担任什么角色,如何配合解决问题? 回答:我很喜欢新技术,当年 chatgpt 起矛头的时候,我便当起了账号的二道贩子,也因此对 llm 用起来很上手,对于以上的问题,早些年我会去百度找灵感,不够最近我重心向 llm 偏移。团队合作中我一般担任组长,很少担任组员的情况,我会分配每个人应该做的事情,以及最晚截至时间。

问题 3.3:Pandas 和 Numpy 的区别及应用场景?

回答

  • 核心数据结构
    • Numpy:多维数组(ndarray),元素类型一致,适合数值计算。
    • PandasSeries(一维带标签数组)和DataFrame(二维表格),支持混合数据类型。
  • 应用场景
    • Numpy:科学计算(线性代数、傅里叶变换)、机器学习模型底层计算。
    • Pandas:数据处理(清洗、聚合)、时间序列分析(如股票数据)。

Python 开发实习面试准备 - Grained.AI
http://example.com/2025/06/25/Python-开发实习面试准备-Grained-AI/
作者
John Doe
发布于
2025年6月25日
许可协议