爬蟲面試(轉(zhuǎn)自空山大佬)

爬蟲面試常見問題

一.項(xiàng)目問題:

你寫爬蟲的時(shí)候都遇到過什么反爬蟲措施,你是怎樣解決的

用的什么框架。為什么選擇這個(gè)框架

二.框架問題:

scrapy的基本結(jié)構(gòu)(五個(gè)部分都是什么,請(qǐng)求發(fā)出去的整個(gè)流程)

scrapy的去重原理(指紋去重到底是什么原理)

scrapy中間件有幾種類,你用過哪些中間件

scrapy中間件在哪里起的作業(yè)(面向切片編程)

三.代理問題:

為什么會(huì)用到代理

代理怎么使用(具體代碼, 請(qǐng)求在什么時(shí)候添加的代理)

代理失效了怎么處理

四.驗(yàn)證碼處理:

登陸驗(yàn)證碼處理

爬取速度過快出現(xiàn)的驗(yàn)證碼處理

如何用機(jī)器識(shí)別驗(yàn)證碼

五.模擬登陸問題:

模擬登陸流程

cookie如何處理

如何處理網(wǎng)站傳參加密的情況

六.分布式:

分布式原理

分布式如何判斷爬蟲已經(jīng)停止了

分布式的去重原理

七.數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)庫問題:

關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的區(qū)別

爬下來數(shù)據(jù)你會(huì)選擇什么存儲(chǔ)方式,為什么

各種數(shù)據(jù)庫支持的數(shù)據(jù)類型,和特點(diǎn)

是否支持事務(wù)...

八.Python基礎(chǔ)問題:

基礎(chǔ)問題非常多,但是因?yàn)榕老x性質(zhì),還是有些問的比較多的,下面總結(jié):

Python2和Python3的區(qū)別,如何實(shí)現(xiàn)python2代碼遷移到Python3環(huán)境

Python2和Python3的編碼方式有什么差別

迭代器,生成器,裝飾器

Python的數(shù)據(jù)類型

九.協(xié)議問題:

http協(xié)議,請(qǐng)求由什么組成,每個(gè)字段分別有什么用,https和http有什么差距

證書問題

TCP,UDP各種相關(guān)問題

十.數(shù)據(jù)提取問題:

主要使用什么樣的結(jié)構(gòu)化數(shù)據(jù)提取方式,可能會(huì)寫一兩個(gè)例子

正則的使用

動(dòng)態(tài)加載的數(shù)據(jù)如何提取

json數(shù)據(jù)如何提取

十一.算法問題:

算法:你們要善用Python的數(shù)據(jù)類型,對(duì)Python的數(shù)據(jù)結(jié)構(gòu)深入了解

Python WEB面試常見問題

一. python語法以及其他基礎(chǔ)部分:

可變與不可變類型

淺拷貝與深拷貝的實(shí)現(xiàn)方式、區(qū)別;deepcopy如果你來設(shè)計(jì),如何實(shí)現(xiàn)

new() 與 init()的區(qū)別

你知道幾種設(shè)計(jì)模式

編碼和解碼你了解過么

列表推導(dǎo)list comprehension和生成器的優(yōu)劣

什么是裝飾器;如果想在函數(shù)之后進(jìn)行裝飾,應(yīng)該怎么做

手寫個(gè)使用裝飾器實(shí)現(xiàn)的單例模式

使用裝飾器的單例和使用其他方法的單例,在后續(xù)使用中,有何區(qū)別

手寫:正則郵箱地址

介紹下垃圾回收:引用計(jì)數(shù)/分代回收/孤立引用環(huán)

多進(jìn)程與多線程的區(qū)別,CPU密集型適合用什么

進(jìn)程通信的方式有幾種

介紹下協(xié)程,為何比線程還快

range和xrange的區(qū)別

二. 算法排序部分:

手寫快排;堆排;幾種常用排序的算法復(fù)雜度是多少;快排平均復(fù)雜度多少,最壞情況如何優(yōu)化

手寫:已知一個(gè)長度n的無序列表,元素均是數(shù)字,要求把所有間隔為d的組合找出來,你寫的解法算法復(fù)雜度多少

手寫:一個(gè)列表A=[A1,A2,…,An],要求把列表中所有的組合情況打印出來;

手寫:用一行python寫出1+2+3+…+10**8

手寫python:用遞歸的方式判斷字符串是否為回文

單向鏈表長度未知,如何判斷其中是否有環(huán)

單向鏈表如何使用快速排序算法進(jìn)行排序

手寫:一個(gè)長度n的無序數(shù)字元素列表,如何求中位數(shù),如何盡快的估算中位數(shù),9).你的算法復(fù)雜度是多少;

如何遍歷一個(gè)內(nèi)部未知的文件夾(兩種樹的優(yōu)先遍歷方式)

三. 網(wǎng)絡(luò)基礎(chǔ)部分:

TCP/IP分別在模型的哪一層

socket長連接是什么意思

select和epoll你了解么,區(qū)別在哪

TCP UDP區(qū)別;三次握手四次揮手講一下

TIME_WAIT過多是因?yàn)槭裁?/p>

http一次連接的全過程:你來說下從用戶發(fā)起request——到用戶接收到? ? ? response

http連接方式。get和post的區(qū)別,你還了解其他的方式么

restful你知道么

狀態(tài)碼你知道多少,比如200/403/404/504等等

四. 數(shù)據(jù)庫部分:

MySQL鎖有幾種;死鎖是怎么產(chǎn)生的; 為何,以及如何分區(qū)、分表;

MySQL的char varchar text的區(qū)別:

了解join么,有幾種有何區(qū)別,A LEFT JOIN B,查詢的結(jié)果中,B沒有的那部分是如何顯示的(NULL)

索引類型有幾種,BTree索引和hash索引的區(qū)別

手寫:如何對(duì)查詢命令進(jìn)行優(yōu)化

NoSQL了解么,和關(guān)系數(shù)據(jù)庫的區(qū)別,redis有幾種常用存儲(chǔ)類型

五. Linux部分:

講一下你常用的Linux/git命令和作用;

查看當(dāng)前進(jìn)程是用什么命令,除了文件相關(guān)的操作外,你平時(shí)還有什么操作命令;

六. Django項(xiàng)目部分:

都是讓簡單的介紹下你在公司的項(xiàng)目,不管是不是后端相關(guān)的,主要是要體現(xiàn)出你干了什么

你在項(xiàng)目中遇到最難的部分是什么,你是怎么解決的; 你看過django的admin源碼么

看過flask的源碼么,你如何理解開源

MVC / MTV, 緩存怎么用, 中間件是干嘛的

CSRF是什么,django是如何避免的,XSS

如果你來設(shè)計(jì)login,簡單的說一下思路

session和cookie的聯(lián)系與區(qū)別,session為什么說是安全的

uWSGI和Nginx的作用;

每個(gè)公司各有特點(diǎn),但是這些算是基礎(chǔ),也是常見問題。

面試題鏈接:https://pan.baidu.com/s/1-fUgHDbRXKUdR9Aq68V3PA密碼:taxg

祝大家能找到理想工作,不寫bug!

作者:空山丶

鏈接:http://m.itdecent.cn/p/59a9bbd13001

來源:簡書

簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容