Python面试重点(爬虫篇)

Python面试重点(爬虫篇)

注意:只有必答题部分计算分值,补充题不计算分值。

第一部分 必答题

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

  1. 了解哪些基于爬虫相关的模块?

    requests、urllib、lxml、bs4、selenium

  2. 常见的数据解析方式?

    re、lxml、bs4

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

    参数加密、数据加密

  4. 简述如何抓取动态加载数据?

    获取动态ip地址

    向动态id发送请求

  5. 移动端数据如何抓取?
  6. 抓取过哪些类型的数据,量级多少?
  7. 了解哪些爬虫框架?

    scrapy

  8. 谈谈对scrapy的了解?
  9. 如何解析出携带标签的局部页面数据?
  10. scrapy核心组件?

    引擎(EGINE)调度器(SCHEDULER)下载器(DOWLOADER)爬虫(SPIDERS)项目管道(ITEM PIPLINES)下载器中间件(Downloader Middlewares)爬虫中间件(Spider Middlewares)

  11. scrapy中间件的应用?

    位于Scrapy引擎和下载器之间,主要用来处理从EGINE传到DOWLOADER的请求request,已经从DOWNLOADER传到EGINE的响应response

  12. 如何实现全站数据爬取?
  13. 如何检测网站数据更新?
  14. 分布式爬虫实现原理?
  15. 如何提升爬取数据的效率(异步爬虫)
  16. 列举你接触的反爬机制?

    ua检测、封ip、js混淆、参数加密、数据加密

  17. 什么是深度优先和广度优先(优劣)
  18. scrapy如何实现持久化存储

    存文件、存数据库

  19. 谈谈对crawlspider的理解,如何使用其进行深度爬取
  20. 如何实现数据清洗?
  21. 了解过机器学习吗?
  22. 在爬虫中为什么需要是用selenium?selenium和爬虫之间的关联是什么?
  23. 列举你所熟知的selenium模块中的常用方法及其作用
  24. 解释在多任务异步协程中事件循环(loop)的作用是什么?
  25. 多任务异步协程是如何实现异步的?

    基于aiohttp模块异步网络请求实现数据爬取及数据解析

    特殊函数:如果async修饰了一个函数的定义,那么该函数就变成了一个特殊函数,

        特殊之处:特殊函数被调用后函数内部实现语句不会被立即执行 

        该函数调用之后会返回一个协程对象   

    协程对象:特殊函数调用后可以返回一个协程对象

        协程 == 特殊函数

      任务对象:对协程对象的进一步封装,就是一个高级协程对象

        任务对象 == 协程对象 == 特殊的函数

        绑定回调:task.add_done_callback(parse) #parse就是一个回调函数

          parse的定义:

            parse必须又一个参数,该参数表示的就是回调函数对应的任务对象

            task.result(): 就是特殊函数的的返回值

    事件循环对象:可以让特殊函数内部的语句执行

        该对象内部必须注册的是任务对象,当事件循环开启后其内部注册的任务对象就可以基于异步被执行

  26. 验证码如何处理?

    selenium,超级鹰

  27. scrapy 和 scrapy-redis 有什么区别?

    scrapy 是一个通用的爬虫框架,其功能比较完善,可以帮你迅速的写一个简单爬虫,并且跑起来。scrapy-redis是为了更方便地实现scrapy分布式爬取,而提供了一些以redis为基础的组件

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

    1.域名解析成IP

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

    3.发送和接收数据

  29. 列出你知道 header 的内容以及信息
  30. 简述scrapy的去重原理?

    调度器(SCHEDULER) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址

  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 alistalist = [3,8,5,2,0,7,6]print(sort(alist))
  34. 写代码:实现一个快速排序。
    def sort(alist,left,right):    low = left    hight = right    if low < high:        return        mid = alist[low]    while low < high:        while low < high:            if alist[high] < mid:                alist[low] = alist[high]                break            else:                high -= 1        while low < high:            if alist[low] < mid:                low += 1            else:                alist[high] = alist[low]                break    if low == high:       alist[low] = mid    sort(alist,left,low-1)    sort(alist,high+1,right)    return alist

第二部分 补充题

  1. 列举常见用的git命令?
  2. 你们公司/团队用怎么做的协同开发?
  3. 公司如何做代码review?谁来做?
  4. 线上代码如果出现bug如何解决?
  5. git rebase的作用?

git实战视频地址:https://www.bilibili.com/video/av70772636

原文地址:https://www.cnblogs.com/Ndfour/p/12425718.html

时间: 2024-11-08 06:16:13

Python面试重点(爬虫篇)的相关文章

Python面试重点(基础篇)

Python面试重点(基础篇) 第一部分 必答题 简述列举了解的编程语言及语言间的区别? pythonjavacc++c#gophp----------------------------------------------------------------编程语言分为解释型和编译型: 解释型语言:   python 在编写代码的时候不需要编译,在执行的时候,想要用专用的解释器对代码进行编译,全部编译后,才能执行代码 编译型语言:   c c++   go 每写一行代码,解释器就会编译一行,然

Python面试重点(web篇)

Python面试重点(web篇) 注意:只有必答题部分计算分值,补充题不计算分值. 第一部分 必答题 注意:除第四题4分以外,其他题均每题3分. 写出常用的bootstrap的样式. Bootstrap表格样式.栅格系统.带边框的表格.状态类表格(带背景色的表格).内联表单.禁用状态和只读状态 什么是响应式布局? 请通过jQuery发送ajax请求. $.ajax({ url:'/test/', # 提交的地址 type:"post", # 请求方式 data:{ # 提交的数据 na

web面试重点.

Python面试重点(web篇) 第一部分 必答题 注意:除第四题4分以外,其他题均每题3分. 写出常用的bootstrap的样式. form-control(input,select), table(table table-striped table-hover,table-border ) class='row' col-md-3 col-md-offset-3 btn btn-primary btn-success btn-danger... 什么是响应式布局?(针对不同的设备屏幕宽度,来

Python面试简介及并行并发

今天的分享内容大体如下: 一. 面试 1. 什么是面试 2. 优秀的面试 二. Python综述 1. Python设计哲学及版本变迁 2. Python发展现状及其他语言使用场景 3. GIL 4. 内存管理和垃圾回收 5. 面试示例 三.并发并行 1. 进程 2. 线程 3. 协程 4. 并发编程 一. 面试 什么是面试 面:当面/面谈/面聊, 试:考试,当前社会上各大企业和公司招人环节中最重要的一道流程关卡:目前面试已经衍生了多种操作形式:直面.电面.视频面.在线coding: 一轮面试的

C C++ OC iOS面试重点问题(一)

C C++ OC iOS面试重点问题(一) 1.字符串常量需要加\0 2.逻辑运算 位操作(经典:实现两个数的交换) 3.关键字 4.引用和指针的区别和联系 5.如何引用一个已经定义过的全局变量?  答:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变变量,假定你将那个变量写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错. 5.extern关键字的用法? 答:ext

Python面试基础

Python培训结束后忙于找工作,特整理了基础知识以应对面试. 基础篇 1.三元/幕运算 result = 值1 if 条件1 else 值2 2.进制 二进制:01 八进制:0-7 十进制:0-9 十六进制:0-F 3.str对象的方法 capitalize() 首字母大写 center(width,fillchar=None) 内容居中,width总长度,fillchar填充字符 如:*********************123************************ count

Python从零开始写爬虫-2 使用正则表达式解析HTML

上一篇博客Python从零开始写爬虫-1 使用Python发送http请求并获得网页源代码中我们已经学习到如何从网站上获取html的源码, 那么今天我们就来学习如何使用正则表达式来解析HTML.同样以Python的Api文档为例. 正则表达式: 又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式通常被用来检索.替换那些符合某个模式(规则)的文本.(从百度上复制过来的) 看这篇文章没有正则表达式的基础也可

Python开发【第一篇】:目录

本系列博文改编自武沛齐老师的原创博文,主要包含  Python基础.前端开发.Web框架.缓存以及队列等内容 ,用于学习记录成长!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python

python 面向对象(进阶篇)

上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象