常見的Python爬蟲面試題,叫面試官唱征服

來源:互聯網
上載者:User

標籤:python   爬蟲   web開發   系統入門   快速詳細   


是否瞭解線程的同步和非同步?

線程同步:多個線程同時訪問同一資源,等待資源訪問結束,浪費時間,效率低
線程非同步:在訪問資源時在空閑等待時同時訪問其他資源,實現多線程機制
是否瞭解網路的同步和非同步?
同步:提交請求->等待伺服器處理->處理完畢返回 這個期間用戶端瀏覽器不能幹任何事
非同步: 請求通過事件觸發->伺服器處理(這是瀏覽器仍然可以作其他事情)->處理完畢
鏈表和順序表儲存時各自有什麼優點?
1.順序表格儲存體
原理:順序表格儲存體是將資料元素放到一塊連續的記憶體儲存空間,存取效率高,速度快。但是不可以動態增加長度
    優點:存取速度高效,通過下標來直接儲存
    缺點:1.插入和刪除比較慢,2.不可以增長長度
     比如:插入或者刪除一個元素時,整個表需要遍曆移動元素來重新排一次順序
2.鏈表格儲存體
原理:鏈表格儲存體是在程式運行過程中動態分配空間,只要儲存空間還有空間,就不會發生儲存溢出問題
    優點:插入和刪除速度快,保留原有的物理順序,比如:插入或者刪除一個元素時,需要改變指標指向即可
     缺點:尋找速度慢,因為尋找時,需要迴圈鏈表訪問
使用redis搭建分布式系統時如何處理網路延遲和網路異常?
由於網路異常的存在,分布式系統中請求結果存在“三態”的概念,即三種狀態:“成功”、“失敗”、“逾時(未知)”
當出現“逾時”時可以通過發起讀取資料的操作以驗證 RPC 是否成功(例如銀行系統的做法)
另一種簡單的做法是,設計分布式協議時將執行步驟設計為可重試的,即具有所謂的“等冪性”
資料倉儲是什嗎?
資料倉儲是一個面向主題的、整合的、穩定的、反映曆史變化的、隨著時間的流逝發生變化的資料集合。它主要支援管理員的決策分析。
資料倉儲收集了企業相關內部和外部各個業務系統資料來源、歸檔檔案等一系列曆史資料,最後轉化成企業需要的戰略決策資訊。
特點:

  1. 面向主題:根據業務的不同而進行的內容劃分;

  2. 整合特性:因為不同的業務來源資料具有不同的資料特點,當業務來源資料進入到資料倉儲時,需要採用統一的編碼格式進行資料載入,從而保證資料倉儲中資料的唯一性;

  3. 非易失性:資料倉儲通過儲存資料不同曆史的各種狀態,並不對資料進行任何更新操作。

  4. 曆史特性:資料保留時間戳欄位,記錄每個資料在不同時間內的各種狀態。

假設有一個爬蟲,從網路上擷取資料的頻率快,本地寫入資料的頻率慢,使用什麼資料結構好?
    線上求解(o°ω°o)
你是否瞭解Google的無頭瀏覽器?
無頭瀏覽器即headless browser,是一種沒有介面的瀏覽器。既然是瀏覽器那麼瀏覽器該有的東西它都應該有,只是看不到介面而已。
Python中selenium模組中的PhantomJS即為無介面瀏覽器(無頭瀏覽器):是基於QtWebkit的無頭瀏覽器,
你是否瞭解MySQL資料庫的幾種引擎?
    InnoDB:
    InnoDB是一個健壯的事務型儲存引擎,這種儲存引擎已經被很多互連網公司使用,為使用者操作非常大的資料存放區提供了一個強大的解決方案。
在以下場合下,使用InnoDB是最理想的選擇:

推薦給大家一個學習交流的地方:719139688,,裡面可以很好的學到python的知識,特別是對於初學者和進階的學習者來說。
1.更新密集的表。InnoDB儲存引擎特別適合處理多重並發的更新要求。
2.事務。InnoDB儲存引擎是支援事務的標準MySQL儲存引擎。
3.自動災難恢複。與其它儲存引擎不同,InnoDB表能夠自動從災難中恢複。
4.外鍵約束。MySQL支援外鍵的儲存引擎只有InnoDB。
5.支援自動增加列AUTO_INCREMENT屬性。
一般來說,如果需要事務支援,並且有較高的並發讀取頻率,InnoDB是不錯的選擇。
MEMORY:
使用MySQL Memory儲存引擎的出發點是速度。為得到最快的回應時間,採用的邏輯儲存介質是系統記憶體。
雖然在記憶體中儲存表資料確實會提供很高的效能,但當mysqld守護進程崩潰時,所有的Memory資料都會丟失。
獲得速度的同時也帶來了一些缺陷。  
一般在以下幾種情況下使用Memory儲存引擎:
1.目標資料較小,而且被非常頻繁地訪問。在記憶體中存放資料,所以會造成記憶體的使用,可以通過參數max_heap_table_size控制Memory表的大小,設定此參數,就可以限制Memory表的最大大小。
2.如果資料是臨時的,而且要求必須立即可用,那麼就可以存放在記憶體表中。
3.儲存在Memory表中的資料如果突然丟失,不會對應用服務產生實質的負面影響。
redis資料庫有哪幾種資料結構?
5種資料結構
string
使用string時,redis**大多數情況下**並不會理解或者解析其含義,無論使用json、xml還是純文字在redis看來都是一樣的,只是一個字串,只能進行strlen、append等對字串通用的操作,無法針對其內容進一步操作。其基本操作命令有set、get、strlen、getrange、append:


常見的Python爬蟲面試題,叫面試官唱征服

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.