当前位置:首页 > 服务端 > python爬虫面试真题及答案

python爬虫面试真题及答案

2022年11月09日 22:49:26服务端8

0|1第一部分 必答题

注意:第31题1分,其他题均每题3分。

1,了解哪些基于爬虫相关的模块?- 网络请求:urllib,requests,aiohttp

- 数据解析:re,xpath,bs4,pyquery

- selenium

- js逆向:pyexcJs

2,常见的数据解析方式?- re、lxml、bs4

3,列举在爬虫过程中遇到的哪些比较难的反爬机制?

- 动态加载的数据

- 动态变化的请求参数

- js加密

- 代理

- cookie

4,简述如何抓取动态加载数据?- 基于抓包工具进行全局搜索

- 如果动态加载的数据是密文,则全局搜索是搜索不到

5,移动端数据如何抓取?- fiddler,appnium,网络配置

6,抓取过哪些类型的数据,量级多少?- 电商,医疗器械,彩妆,新闻资讯,金融,体育赛事(参考hao123网站)

- 量级:

- 最好不要超过100w。自己计算(页数,一页显示多少数据)

7,了解哪些爬虫框架?- scrapy,pyspider

8,谈谈对scrapy的了解?- 功能:数据解析,持久化存储,深度爬取,分布式,关键件

- 五大核心组件的作用和工作流程

9,如何解析出携带标签的局部页面数据?- bs4

10,scrapy核心组件?- spider,引擎,调度器,下载器,管道

11,scrapy中间件的应用?- 作用:拦截请求和响应

- 拦截请求:设置代理

12,如何实现全站数据爬取?- 基于手动请求发送+递归解析

- 基于CrwalSpider(LinkExtractor,Rule)

13,如何检测网站数据更新?- 增量式爬虫

14,分布式爬虫实现原理?- 基于scrapy-redis实现的分布式。

15,如何提升爬取数据的效率(异步爬虫)- 使用框架

- 线程池,多任务的异步协程

- 分布式

16,列举你接触的反爬机制?ua检测、封ip、js混淆、参数加密、数据加密,动态加载

17,什么是深度优先和广度优先(优劣)- 默认情况下scrapy是深度优先。

- 深度优先:占用空间大,但是运行速度快

- 广度优先:占用空间少,运行速度慢

18,scrapy如何实现持久化存储

- 解析数据

- 将解析的数据封装到item中

- 将item提交管道

- 在管道中持久化存储

- 开启管道

19,谈谈对crawlspider的理解,如何使用其进行深度爬取- 链接提取器&规则解析器

20,如何实现数据清洗?

- 清洗空值(缺失值)

- 将空对应的行数据删除.dropna

- 使用近邻值填充空值.fillna

- 清洗重复值

- 重复的行数据删除:drop_duplicates()

- 清洗异常值

- 一定要有一个判定异常值的条件

21,了解过机器学习吗?

- 特征工程

- 特征预处理

- 归一化,标准化

- 特征值化

- 将非数值型的数据转换成数值型的数据

- 降维

- sklean框架

- 线性回归,KNN,贝叶斯

- 补充:

1.树模型:决策树

2.集成模型:随机森林

- 深度学习框架:

- tensorflow

22,在爬虫中为什么需要是用selenium?selenium和爬虫之间的关联么?selenium和爬虫之间的关联是什么?

- 爬取动态加载的数据

- 模拟登录

23,列举你所熟知的selenium模块中的常用方法及其作用

24,解释在多任务异步协程中事件循环(loop)的作用是什么?- 可以将注册在其内部的任务对象表示的特定操作进行异步执行

25,多任务异步协程是如何实现异步的?- 一个任务对象就是一个协程也是一组特定的操作,将任务对象注册到事件循环中,就可以异步的执行每一组特定的操作

- wait方法,await关键字

26,验证码如何处理?- 打码平台

27,scrapy 和 scrapy-redis 有什么区别?- scrapy-redis这个组件可以给scrapy框架提供共享的管道和调度器实现分布式爬虫

28,说一说打开浏览器访问 www.baidu.com 获取到结果,整个流程。

1.域名解析成IP

2.与目的主机进行TCP连接(三次握手)

3.发送和接收数据

29,列出你知道 header 的内容以及信息- User-Agent

- Connection

30,简述scrapy的去重原理?需要将dont_filter设置为False开启去重,默认是False;

对于每一个url的请求,调度器都会根据请求的相关信息加密得到一个指纹信息,并且将指纹信息和set()集合中得指纹信息进行比对,如果set()集合中已经存在这个数据,就不在将这个Request放入队列中。如果set()集合中没有,就将这个Request对象放入队列中,等待被调度。

31,下列叙述中错误的是:(1分)A.栈是线性结构 B.队列是线性结构

C.线性列表是线性结构 D.二叉树是线性结构

32,简述前序、中序、后续遍历?

跟左右

左跟右

左右跟

33,写代码:实现一个冒泡排序。

def sort(alist):

length = len(alist)for j in range(length-1)for i in range(length-1-j):if alist[i] > alist[i+1]:

alist[i],alist[i+1] = alist[i+1],alist[i]return alist

alist = [3,8,5,2,0,7,6]print(sort(alist))

34,写代码:实现一个快速排序。

def sort(alist,left,right):

low = left

hight = rightif low < high:return

mid = alist[low]while low < high:while low < high:if alist[high] < mid:

alist[low] = alist[high]breakelse:

high -= 1while low < high:if alist[low] < mid:

low += 1else:

alist[high] = alist[low]breakif low == high:

alist[low] = mid

sort(alist,left,low-1)

sort(alist,high+1,right)return alist

0|1第二部分 补充题

1,列举常见用的git命令?

2,你们公司/团队用怎么做的协同开发?

3,公司如何做代码review?谁来做?

4,线上代码如果出现bug如何解决?

5,git rebase的作用?

__EOF__

作者:朴少
来源链接:https://blog.csdn.net/weixin_29480659/article/details/112045275

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/69227.html

分享给朋友:

“python爬虫面试真题及答案” 的相关文章

Python解释器安装教程以及环境变量配置 以及 pycharm的安装与激活

Python解释器安装教程以及环境变量配置 以及 pycharm的安装与激活

计算机的组成 主板:人的骨架,用于拓展设备 CPU:人的大脑,用于计算和逻辑处理 硬盘:存储数据(永久储存),比如电脑上的 C盘,D盘 内存:临时记忆(断电即消失) 操作系统:XP win7 win10 Mac linux 主要是承上启下...

面试官问:为什么你们项目要用消息队列?

面试官问:为什么你们项目要用消息队列?

同学们应该都会被问到过这个问题:你的系统为什么要用消息队列? 大家普遍回答:我入职前,系统里面就已经用了消息队列啊,然后就用了。 其实面试官就是想看看你有没有深入了解过消息队列,有没有认真思考过消息队列解决了哪些问题? ​ 这篇文章主要带大家解决以...

numpy的安装和使用

numpy的安装和使用

           自定义安装Python(记得勾选环境变量)后,首次使用IDLE或者DOC执行python使用numpy时会报如下错误:   这说明安装python过程中并未安装numpy,此时需要手...

一文高效图解二叉树面试题

一文高效图解二叉树面试题

点击蓝色“码出高效面试的程序媛”关注我, 了解更多技术流行面试题 二叉树,搜索二叉树,是算法面试的必面题。聊聊面试点: 一、树 & 二叉树 树的组成为节点和边,节点用来储存元素。节点组成为根节点、父节点和子节点。 如图:树深 leng...

python 环境安装

python 环境安装

Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,超简单 Windows安装 打开官网 https://www.python.org/download...

python笔记

python笔记

网上推荐使用python3:     安装python之后(安装过程参考“菜鸟教程”),配置环境变量,这样可以在cmd中的任何目录调用python的执行程序。 查询python版本:    ...

python windows安装

一、下载并安装 下载地址 http://www.python.org/download/ 安装 二、配置环境变量 配置python环境变量以便后面安装插件。...

Python快速学习04:循环 & 函数

Python快速学习04:循环 & 函数

前言   系列文章:[传送门]   也就今天认识了 LC ,很开心。      本文目录     循环       for       while       中断     函数...

windows7下python环境变量配置

windows7下python环境变量配置

默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量。此时不能在命令行或cmd里直接使用python命令。   1、 首先需要在系统中注册python环境变量:假设python的安装路径为C:\Users\Administ...

面试题:SpringBoot 自动装配原理

1. @SpringBootApplication注解 首先,我们都知道SpringBoot程序的入口是通过@SpringBootApplication注解修饰的一个类,例如: @SpringBootApplication public cl...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。