欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python爬蟲面試寶典(常見問題)

 更新時間:2018年03月02日 15:43:54   作者:默行  
這篇文章主要介紹了python爬蟲面試寶典及常見問題小結,需要的朋友可以參考下
  • 是否了解線程的同步和異步?

線程同步:多個線程同時訪問同一資源,等待資源訪問結束,浪費時間,效率低

線程異步:在訪問資源時在空閑等待時同時訪問其他資源,實現多線程機制

  • 是否了解網絡的同步和異步?

同步:提交請求->等待服務器處理->處理完畢返回 這個期間客戶端瀏覽器不能干任何事

異步: 請求通過事件觸發(fā)->服務器處理(這是瀏覽器仍然可以作其他事情)->處理完畢

  • 鏈表和順序表儲存時各自有什么優(yōu)點?

1.順序表存儲

原理:順序表存儲是將數據元素放到一塊連續(xù)的內存存儲空間,存取效率高,速度快。但是不可以動態(tài)增加長度

優(yōu)點:存取速度高效,通過下標來直接存儲

缺點:1.插入和刪除比較慢,2.不可以增長長度

比如:插入或者刪除一個元素時,整個表需要遍歷移動元素來重新排一次順序

2.鏈表存儲

原理:鏈表存儲是在程序運行過程中動態(tài)的分配空間,只要存儲器還有空間,就不會發(fā)生存儲溢出問題

優(yōu)點:插入和刪除速度快,保留原有的物理順序,比如:插入或者刪除一個元素時,只需要改變指針指向即可

缺點:查找速度慢,因為查找時,需要循環(huán)鏈表訪問

  • 使用redis搭建分布式系統(tǒng)時如何處理網絡延遲和網絡異常?

由于網絡異常的存在,分布式系統(tǒng)中請求結果存在“三態(tài)”的概念,即三種狀態(tài):“成功”、“失敗”、“超時(未知)”

當出現“超時”時可以通過發(fā)起讀取數據的操作以驗證 RPC 是否成功(例如銀行系統(tǒng)的做法)

另一種簡單的做法是,設計分布式協(xié)議時將執(zhí)行步驟設計為可重試的,即具有所謂的“冪等性”

  • 數據倉庫是什么?

數據倉庫是一個面向主題的、集成的、穩(wěn)定的、反映歷史變化的、隨著時間的流逝發(fā)生變化的數據集合。它主要支持管理人員的決策分析。

數據倉庫收集了企業(yè)相關內部和外部各個業(yè)務系統(tǒng)數據源、歸檔文件等一系列歷史數據,最后轉化成企業(yè)需要的戰(zhàn)略決策信息。

  • 特點:

面向主題:根據業(yè)務的不同而進行的內容劃分;
集成特性:因為不同的業(yè)務源數據具有不同的數據特點,當業(yè)務源數據進入到數據倉庫時,需要采用統(tǒng)一的編碼格式進行數據加載,從而保證數據倉庫中數據的唯一性;
非易失性:數據倉庫通過保存數據不同歷史的各種狀態(tài),并不對數據進行任何更新操作。
歷史特性:數據保留時間戳字段,記錄每個數據在不同時間內的各種狀態(tài)。

假設有一個爬蟲,從網絡上獲取數據的頻率快,本地寫入數據的頻率慢,使用什么數據結構好?

  • 在線求解(o°ω°o)

你是否了解谷歌的無頭瀏覽器?

無頭瀏覽器即headless browser,是一種沒有界面的瀏覽器。既然是瀏覽器那么瀏覽器該有的東西它都應該有,只是看不到界面而已。

Python中selenium模塊中的PhantomJS即為無界面瀏覽器(無頭瀏覽器):是基于QtWebkit的無頭瀏覽器,

你是否了解MySQL數據庫的幾種引擎?

  • InnoDB:

InnoDB是一個健壯的事務型存儲引擎,這種存儲引擎已經被很多互聯網公司使用,為用戶操作非常大的數據存儲提供了一個強大的解決方案。

在以下場合下,使用InnoDB是最理想的選擇:

1.更新密集的表。InnoDB存儲引擎特別適合處理多重并發(fā)的更新請求。

2.事務。InnoDB存儲引擎是支持事務的標準MySQL存儲引擎。

3.自動災難恢復。與其它存儲引擎不同,InnoDB表能夠自動從災難中恢復。

4.外鍵約束。MySQL支持外鍵的存儲引擎只有InnoDB。

5.支持自動增加列AUTO_INCREMENT屬性。

一般來說,如果需要事務支持,并且有較高的并發(fā)讀取頻率,InnoDB是不錯的選擇。

  • MEMORY:

使用MySQL Memory存儲引擎的出發(fā)點是速度。為得到最快的響應時間,采用的邏輯存儲介質是系統(tǒng)內存。

雖然在內存中存儲表數據確實會提供很高的性能,但當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:

 SET key value
 GET key
 STRLEN key
 GETRANGE key start end
 APPEND key value

在大多數情況之外,就是string中存儲的為純數字的情況,redis可以將字符串當做數字進行進一步操作,這些操作包括decr、decrby、incr、incrby和incrbyfloat。

hash

使用hash時,在我看來,就是value本身就是一組key-value對,不過redis將這里的key稱為field(但是hkeys命令為什么不叫hfields命令呢哈哈),也就是value是一組field-value對。其基本操作命令有hset、hget、hmset、hmget、hgetall、hkeys和hdel:

 HSET key field value
 HGET key field
 HMSET key field value [field value ...]
 HMGET key field [field ...]
 HGETALL key
 HKEYS key
 HDEL key field [field ...]

list

使用list時,value就是一個string數組,操作這組string時,可以像對待棧一樣使用pop和push操作,但是這個棧兩端都能進行操作;也可以像對待數組一樣使用一個index參數來操作。list的操作命令略雜,主要分為兩類:L開頭的和R開頭的,L代表LEFT或者LIST,進行一些從列表左端進行的操作,或者一些與端無關的操作;R代表RIGHT,進行一些從列表右端進行的操作。 

set

set用于存儲一組不重復的值,也可以進行一些集合的操作,就像數學上的集合,它是無序的?;静僮饔衧add和sismember:

 SADD key member [member ...]
 SISMEMBER key member

集合操作有:求交sinter、求并sunion和求差sdiff:

 SINTER key [key ...]
 SUNION key [key ...]
 SDIFF key [key ...]

sorted set

sorted set類似set,但是sorted set里每個元素都有一個score,這個score可用于排序和排名?;静僮饔衵add、zcount、zrank:

 ZADD key score member [score member ...]
 ZCOUNT key min max
 ZRANK key member

總結

以上所述是小編給大家介紹的python爬蟲面試經典(常見問題),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Python PyYAML庫解析YAML文件使用詳解

    Python PyYAML庫解析YAML文件使用詳解

    這篇文章主要為大家介紹了Python PyYAML庫解析YAML文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • python庫geopandas讀取寫入空間數據及繪圖實例探索

    python庫geopandas讀取寫入空間數據及繪圖實例探索

    這篇文章主要為大家介紹了python庫geopandas讀取寫入空間數據及繪圖實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2024-02-02
  • django rest framework 實現用戶登錄認證詳解

    django rest framework 實現用戶登錄認證詳解

    這篇文章主要介紹了django rest framework 實現用戶登錄認證詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python圖像處理之反色實現方法

    python圖像處理之反色實現方法

    這篇文章主要介紹了python圖像處理之反色實現方法,涉及Python結合OpenCV與numpy操作圖片的相關技巧,需要的朋友可以參考下
    2015-05-05
  • 簡單了解Python變量作用域正確使用方法

    簡單了解Python變量作用域正確使用方法

    這篇文章主要介紹了簡單了解Python變量作用域正確使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python實現的自定義多線程多進程類示例

    Python實現的自定義多線程多進程類示例

    這篇文章主要介紹了Python實現的自定義多線程多進程類,結合實例形式分析了Python多線程多進程的相關調用與使用操作技巧,需要的朋友可以參考下
    2018-03-03
  • keras實現調用自己訓練的模型,并去掉全連接層

    keras實現調用自己訓練的模型,并去掉全連接層

    這篇文章主要介紹了keras實現調用自己訓練的模型,并去掉全連接層,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python 字典訪問的三種方法小結

    python 字典訪問的三種方法小結

    今天小編就為大家分享一篇python 字典訪問的三種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 用python自動生成日歷

    用python自動生成日歷

    這篇文章主要介紹了如何用python自動生成日歷,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-04-04
  • python 序列類型list示例詳解

    python 序列類型list示例詳解

    列表(List)是一種有序的集合,可以包含任意類型的對象:數字、字符串甚至其他列表等,列表是可變的,這意味著我們可以添加、刪除或更改列表中的元素,這篇文章主要介紹了python 序列類型list示例詳解,需要的朋友可以參考下
    2024-04-04

最新評論