溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python實(shí)戰(zhàn)之爬蟲面試必備題目有哪些

發(fā)布時(shí)間:2020-11-24 09:53:33 來源:億速云 閱讀:171 作者:小新 欄目:編程語言

了解python實(shí)戰(zhàn)之爬蟲面試必備題目有哪些?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

1、Python 有哪些數(shù)據(jù)類型?

Python 有 6 種內(nèi)置的數(shù)據(jù)類型,其中不可變數(shù)據(jù)類型是Number(數(shù)字), String(字符串), Tuple(元組),可變數(shù)據(jù)類型是 List(列表),Dict(字典),Set(集合)。

 

2、列表和元組的區(qū)別

列表和元組都是可迭代對象,能夠?qū)ζ溥M(jìn)行循環(huán)、切片等,但元組 tuple 是不可變的。元組不可變的特性,使得它可以成為字典 Dict 中的鍵。

 

3、Python 是如何運(yùn)行的CPython:

Python 程序運(yùn)行時(shí),會先進(jìn)行編譯,將 .py 文件中的代碼編譯成字節(jié)碼(byte code),編譯結(jié)果儲存在內(nèi)存的 PyCodeObject 中,然后由 Python 虛擬機(jī)解釋運(yùn)行。當(dāng)程序運(yùn)行結(jié)束后,Python 解釋器會將 PyCodeObject 保存到 pyc 文件中。每一次運(yùn)行時(shí) Python 都會先尋找與文件同名的 pyc 文件,如果 pyc 存在則比對修改記錄,根據(jù)修改記錄決定直接運(yùn)行或再次編譯后運(yùn)行,最后生成 pyc 文件 。

 

4、Python 運(yùn)行速度慢的原因

a). Python 不是強(qiáng)類型的語言,所以解釋器運(yùn)行時(shí)遇到變量以及數(shù)據(jù)類型轉(zhuǎn)換、比較操作、引用變量時(shí)都需要檢查其數(shù)據(jù)類型。

b). Python 的編譯器啟動速度比 JAVA 快,但幾乎每次都要啟動編譯。

c). Python 的對象模型會導(dǎo)致訪問內(nèi)存效率變低。Numpy 的指針指向緩存區(qū)數(shù)據(jù)的值,而 Python 的指針指向緩存對象,再通過緩存對象指向數(shù)據(jù):

 

5.搜索引擎的工作流程(通用爬蟲的工作流程)

(1)抓取網(wǎng)頁:通過搜索引擎將待爬取的URL加入到通用爬蟲的URL隊(duì)列中,進(jìn)行網(wǎng)頁內(nèi)容的爬取。

2)數(shù)據(jù)存儲:將爬取下來的網(wǎng)頁保存到本地,這個(gè)過程會有一定的去重操作,如果某個(gè)網(wǎng)頁的內(nèi) 容大部分內(nèi)容都會重復(fù),搜索引擎可能不會保存。

3)預(yù)處理:提取文字,中文分詞,消除噪音(比如版權(quán)聲明文字,導(dǎo)航條,廣告等)。

(4)設(shè)置網(wǎng)站排名,為用戶提供服務(wù)。

 

6、什么是棧溢出?怎么解決?

因?yàn)闂R话隳J(rèn)為1-2m,一旦出現(xiàn)死循環(huán)或者是大量的遞歸調(diào)用,在不斷的壓棧過程中,造成棧容量超過1m而導(dǎo)致溢出。

棧溢出的情況有兩種:1)局部數(shù)組過大。當(dāng)函數(shù)內(nèi)部數(shù)組過大時(shí),有可能導(dǎo)致堆棧溢出。2)遞歸調(diào)用層次太多。遞歸函數(shù)在運(yùn)行時(shí)會執(zhí)行壓棧操作,當(dāng)壓棧次數(shù)太多時(shí),也會導(dǎo)致堆棧溢出。

解決方法:1)用棧把遞歸轉(zhuǎn)換成非遞歸。2)增大??臻g。

 

7、 MySQL的索引在什么情況下失效?

1)如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什么盡量少用or的原因)

要想使用or,又想讓索引生效,只能將or條件中的每個(gè)列都加上索引。

2)對于多列索引,不是使用的第一部分,則不會使用索引。

3)like查詢以%開頭。

4)如果列類型是字符串,那一定要在條件中將數(shù)據(jù)使用引號引用起來,否則不使用索引。

5)如果MySQL估計(jì)使用全表掃描要比使用索引快,則不使用索引。

 

8、 HTTPS是如何實(shí)現(xiàn)安全傳輸數(shù)據(jù)的?

客戶端(通常是瀏覽器)先向服務(wù)器發(fā)出加密通信的請求;

服務(wù)器收到請求,然后響應(yīng);

客戶端收到證書之后會首先會進(jìn)行驗(yàn)證;

服務(wù)器收到使用公鑰加密的內(nèi)容,在服務(wù)器端使用私鑰解密之后獲得隨機(jī)數(shù)pre-master secret,然后根據(jù)radom1、radom2、pre-master secret通過一定的算法得出session Key和MAC算法秘鑰,作為后面交互過程中使用對稱秘鑰。同時(shí)客戶端也會使用radom1、radom2、pre-master secret,和同樣的算法生成session Key和MAC算法的秘鑰。

然后再后續(xù)的交互中就使用session Key和MAC算法的秘鑰對傳輸?shù)膬?nèi)容進(jìn)行加密和解密。

感謝各位的閱讀!看完上述內(nèi)容,你們對python實(shí)戰(zhàn)之爬蟲面試必備題目有哪些大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI