第1題: 如何解決驗證碼的問題,用什麼模塊,聽過哪些人工打碼平臺?
PIL、pytesser、tesseract模塊html
平臺的話有:(打碼平臺特殊,不保證時效性)python
第2題: ip 被封了怎麼解決,本身作過 ip 池麼?
關於 ip 能夠經過 ip 代理池來解決問題 ip 代理池相關的能夠在 github 上搜索 ip proxy 本身選一個 去說 github.com/awolfly9/IP… 提供大致思路:mysql
- 獲取器 經過 requests 的爬蟲爬取免費的 IP 代理網址獲取 IP。
- 過濾器經過獲取器獲取的代理請求網頁數據有數據返回的保存進 Redis。
- 定時檢測器定時拿出一部分 Proxy 從新的用過濾器進行檢測剔除不能用的代理。
- 利用 Flask web 服務器提供 API 方便提取 IP
第3題: 在 Python 中,list,tuple,dict,set 有什麼區別,主要應用在什麼場景?
區別
- list:鏈表,有序的數據結構, 經過索引進行查找,使用方括號」[]」;
- tuple:元組,元組將多樣的對象集合到一塊兒,不能修改,經過索引進行查找, 使用括號」()」;
- dict:字典,字典是一組鍵(key)和值(value)的組合,經過鍵(key)進行查找,沒有順序, 使用大括號」 {}」;
- set:集合,無序,元素只出現一次, 自動去重,使用」set([])」
應用場景
- list:簡單的數據集合,可使用索引;
- tuple:把一些數據當作一個總體去使用,不能修改;
- dict:使用鍵值和值進行關聯的數據;
- set:數據只出現一次,只關心數據是否出現, 不關心其位置。
第4題: 請描述方法重載與方法重寫?
方法重載
是在一個類裏面,方法名字相同,而參數不一樣。返回類型能夠相同也能夠不一樣。 重載是讓類以統一的方式處理不一樣類型數據的一種手段。c++
方法重寫
子類不想原封不動地繼承父類的方法,而是想做必定的修改,這就須要採用方法的重寫。方法重寫又稱方法覆蓋。git
第5題: 如何用 Python 來發送郵件?
smtplib 標準庫程序員
能夠參考菜鳥教程:www.runoob.com/python/pyth…github
第6題:是否瞭解線程的同步和異步?
- 線程同步:多個線程同時訪問同一資源,等待資源訪問結束,浪費時間,效率低
- 線程異步:在訪問資源時在空閒等待時同時訪問其餘資源,實現多線程機制
- 你喊朋友吃飯,朋友說知道了,待會忙完去找你 ,你就去作別的了。
第7題:是否瞭解網絡的同步和異步?
- 同步:提交請求->等待服務器處理->處理完畢返回,這個期間客戶端瀏覽器不能幹任何事
- 異步: 請求經過事件觸發->服務器處理(這是瀏覽器仍然能夠做其餘事情)->處理完畢
第8題:你是否瞭解MySQL數據庫的幾種引擎?
這個答案比較發散,能夠重點說下面兩種web
InnoDB
InnoDB
是一個健壯的事務型存儲引擎,這種存儲引擎已經被不少互聯網公司使用,爲用戶操做很是大的數據存儲提供了一個強大的解決方案。sql
在如下場合下,使用InnoDB
是最理想的選擇:數據庫
- 更新密集的表。
InnoDB存儲引擎
特別適合處理多重併發的更新請求。
- 事務。
InnoDB存儲引擎
是支持事務的標準MySQL存儲引擎。
- 自動災難恢復。與其它存儲引擎不一樣,
InnoDB
表可以自動從災難中恢復。
- 外鍵約束。MySQL支持外鍵的存儲引擎
只有InnoDB
。
- 支持自動增長列AUTO_INCREMENT屬性。
通常來講,若是須要事務支持,而且有較高的併發讀取頻率,InnoDB是不錯的選擇。
MEMORY
使用MySQL Memory存儲引擎
的出發點是速度。爲獲得最快的響應時間,採用的邏輯存儲介質是系統內存。 雖然在內存中存儲表數據確實會提供很高的性能,但當mysqld守護進程崩潰時,全部的Memory數據都會丟失。 得到速度的同時也帶來了一些缺陷。
通常在如下幾種狀況下使用Memory存儲引擎:
- 目標數據較小,並且被很是頻繁地訪問。在內存中存放數據,因此會形成內存的使用,能夠經過參數max_heap_table_size控制Memory表的大小,設置此參數,就能夠限制Memory表的最大大小。
- 若是數據是臨時的,並且要求必須當即可用,那麼就能夠存放在內存表中。
- 存儲在Memory表中的數據若是忽然丟失,不會對應用服務產生實質的負面影響。
第9題:關注題,最近在公號更新一個神奇的系列入門文章
她專科學歷 27歲從零開始學習c,c++,python編程語言 29歲編寫百例教程 30歲掌握10種編程語言, 用自學的經歷告訴你,學編程就找夢想橡皮擦
歡迎關注她的公衆號,非本科程序員