您好,登錄后才能下訂單哦!
了解python實戰之爬蟲面試必備題目有哪些?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
1、Python 有哪些數據類型?
Python 有 6 種內置的數據類型,其中不可變數據類型是Number(數字), String(字符串), Tuple(元組),可變數據類型是 List(列表),Dict(字典),Set(集合)。
2、列表和元組的區別
列表和元組都是可迭代對象,能夠對其進行循環、切片等,但元組 tuple 是不可變的。元組不可變的特性,使得它可以成為字典 Dict 中的鍵。
3、Python 是如何運行的CPython:
Python 程序運行時,會先進行編譯,將 .py 文件中的代碼編譯成字節碼(byte code),編譯結果儲存在內存的 PyCodeObject 中,然后由 Python 虛擬機解釋運行。當程序運行結束后,Python 解釋器會將 PyCodeObject 保存到 pyc 文件中。每一次運行時 Python 都會先尋找與文件同名的 pyc 文件,如果 pyc 存在則比對修改記錄,根據修改記錄決定直接運行或再次編譯后運行,最后生成 pyc 文件 。
4、Python 運行速度慢的原因
a). Python 不是強類型的語言,所以解釋器運行時遇到變量以及數據類型轉換、比較操作、引用變量時都需要檢查其數據類型。
b). Python 的編譯器啟動速度比 JAVA 快,但幾乎每次都要啟動編譯。
c). Python 的對象模型會導致訪問內存效率變低。Numpy 的指針指向緩存區數據的值,而 Python 的指針指向緩存對象,再通過緩存對象指向數據:
5.搜索引擎的工作流程(通用爬蟲的工作流程)
(1)抓取網頁:通過搜索引擎將待爬取的URL加入到通用爬蟲的URL隊列中,進行網頁內容的爬取。
(2)數據存儲:將爬取下來的網頁保存到本地,這個過程會有一定的去重操作,如果某個網頁的內 容大部分內容都會重復,搜索引擎可能不會保存。
(3)預處理:提取文字,中文分詞,消除噪音(比如版權聲明文字,導航條,廣告等)。
(4)設置網站排名,為用戶提供服務。
6、什么是棧溢出?怎么解決?
因為棧一般默認為1-2m,一旦出現死循環或者是大量的遞歸調用,在不斷的壓棧過程中,造成棧容量超過1m而導致溢出。
棧溢出的情況有兩種:1)局部數組過大。當函數內部數組過大時,有可能導致堆棧溢出。2)遞歸調用層次太多。遞歸函數在運行時會執行壓棧操作,當壓棧次數太多時,也會導致堆棧溢出。
解決方法:1)用棧把遞歸轉換成非遞歸。2)增大棧空間。
7、 MySQL的索引在什么情況下失效?
1)如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什么盡量少用or的原因)
要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引。
2)對于多列索引,不是使用的第一部分,則不會使用索引。
3)like查詢以%開頭。
4)如果列類型是字符串,那一定要在條件中將數據使用引號引用起來,否則不使用索引。
5)如果MySQL估計使用全表掃描要比使用索引快,則不使用索引。
8、 HTTPS是如何實現安全傳輸數據的?
客戶端(通常是瀏覽器)先向服務器發出加密通信的請求;
服務器收到請求,然后響應;
客戶端收到證書之后會首先會進行驗證;
服務器收到使用公鑰加密的內容,在服務器端使用私鑰解密之后獲得隨機數pre-master secret,然后根據radom1、radom2、pre-master secret通過一定的算法得出session Key和MAC算法秘鑰,作為后面交互過程中使用對稱秘鑰。同時客戶端也會使用radom1、radom2、pre-master secret,和同樣的算法生成session Key和MAC算法的秘鑰。
然后再后續的交互中就使用session Key和MAC算法的秘鑰對傳輸的內容進行加密和解密。
感謝各位的閱讀!看完上述內容,你們對python實戰之爬蟲面試必備題目有哪些大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。