tcp,udp區別和特色
TCP(傳輸控制協議)是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議。也就是說,在收發數據前,必須和對方創建可靠的鏈接。
UDP協議是用戶數據報協議,在網絡中它與TCP協議同樣用於處理數據包,是一種無鏈接的協議。html
小結TCP與UDP的區別:
1.基於鏈接與無鏈接;
2.對系統資源的要求(TCP較多,UDP少);
3.UDP程序結構較簡單;
4.流模式與數據報模式 ;
5.TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證。python
驗證碼的實現(簡述)
1.首先肯定滑塊滑塊間的距離,尺寸,座標
2.其次隨機獲取圖片,計算缺口的位置,而後模擬圖片移動的軌跡
3.而後利用第三方軟件進行破解
4.最後調用一下
基本類型
字符串:
列表:
元組:元組與列表相似,不一樣之處在於元組的元素不能修改;元組使用小括號(),列表使用方括號[];元組建立很簡單,只須要在括號中添加元素,並使用逗號(,)隔開便可
字典:字典(dictionary)是除列表以外python中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過偏移存取。字典由鍵和對應的值組成。字典也被稱做關聯數組或哈希表。mysql
user-agent
它是一個特殊字符串頭,使得服務器可以識別客戶使用的操做系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。web
x-path,(文本怎麼提取)
string() text()redis
多進程與多線程
計算密集型:
一、視頻的解碼、編碼
二、科學數據計算
工做須要依賴CPU,多使用進程,建議進程的數量就等於cpu的數量算法
IO密集型:
一、web
二、文件讀寫
IO常常阻塞,速度遠小於CPU的速度,能夠多開闢一些線程,有線程阻塞了,其它線程依然正常工做sql
總結
進程是系統進行資源分配和調度的一個獨立單位
線程是CPU調度和分派的基本單位
一個程序至少有一個進程,一個進程至少有一個線程
計算密集型的任務通常選擇多進程,IO密集型的任務通常選擇多線程數據庫
字符的用法
+鏈接
length() 獲取長度
charAt()獲取指定內容
indexOf() 獲取索引位置
lastIndexOf從指定位置反索引數組
url的get和post區別?
GET後退按鈕/刷新無害,POST數據會被從新提交(瀏覽器應該告知用戶數據會被從新提交)。
GET書籤可收藏,POST爲書籤不可收藏。
GET能被緩存,POST不能緩存 。
GET編碼類型application/x-www-form-url,POST編碼類型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。爲二進制數據使用多重編碼。
GET歷史參數保留在瀏覽器歷史中。POST參數不會保存在瀏覽器歷史中。
GET對數據長度有限制,當發送數據時,GET 方法向 URL 添加數據;URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。POST無限制。
GET只容許 ASCII 字符。POST沒有限制。也容許二進制數據。
與 POST 相比,GET 的安全性較差,由於所發送的數據是 URL 的一部分。在發送密碼或其餘敏感信息時毫不要使用 GET !POST 比 GET 更安全,由於參數不會被保存在瀏覽器歷史或 web 服務器日誌中。
GET的數據在 URL 中對全部人都是可見的。POST的數據不會顯示在 URL 中。瀏覽器
scrapy已經獲取下一頁的url,怎麼獲取下一頁。
yield scrapy.Request(傳入獲取的url)
set是基於什麼算法實現的?
二叉樹
介紹爬蟲用到的技術?
requests、scrapy:爬蟲框架和分佈式爬蟲
xpath:網頁數據提取
re:正則匹配
numpy、pandas:處理數據
matplotlib:繪圖
mysql:數據存儲
redis:爬蟲數據去重和url去重
雲打碼:處理常規驗證碼
複雜驗證碼:用selenium模擬登錄、處理滑塊驗證碼等(滑塊驗證碼有方法,以前破解過滑塊驗證碼,有空我會出個基本使用教程,進行滑塊驗證碼破解,但不必定通用,由於每一個網站反爬措施設置都不同)
mvc流程:首先用戶提交信息給控制器進行處理,而後經過模型講用戶信息保存到數據庫,數據庫再把保存結果返回給模型,控制器再保存結果,經過試圖產生html頁面,而且返回html頁面到瀏覽器。
閉包流程
定義:閉包 當一個函數的返回值是另一個函數,而返回的那個函數若是調用了其父函數內部的變量,且返回的這個函數在外部被執行 ? ? ? ? 就產生了閉包.閉包是一個環境,具體指的就是外部函數--高階函數。說白了就是一個環境,可以讀取其餘函數內部的變量。本質上,閉包是將函數內部和函數外部鏈接起來的橋樑。
用處:1.讀取函數內部的變量;
2.這些變量的值始終保持在內存中,不會在外層函數調用後被自動清除。
優勢:1:變量長期駐紮在內存中;
2:避免全局變量的污染;
3:私有成員的存在 ;
特性:1:函數套函數;
2:內部函數能夠直接使用外部函數的局部變量或參數;
3:變量或參數不會被垃圾回收機制回收 GC;
缺點:
常駐內存 會增大內存的使用量 使用不當會形成內存泄露,詳解:
(1)因爲閉包會使得函數中的變量都被保存在內存中,內存消耗很大,因此不能濫用閉包,不然會形成網頁的性能問題,在IE中可能致使內存泄露。解決方法是,在退出函數以前,將不使用的局部變量所有刪除。
(2)閉包會在父函數外部,改變父函數內部變量的值。因此,若是你把父函數看成對象(object)使用,把閉包看成它的公用方法(Public Method),把內部變量看成它的私有屬性(private value),這時必定要當心,不要隨便改變父函數內部變量的值
Ajax?
不加載數據能夠局部刷新
生成器迭代器
在Python中,這種一邊循環一邊計算的機制,稱爲生成器:generator。
能夠被next()函數調用並不斷返回下一個值的對象稱爲迭代器:Iterator。
死鎖
1.競爭資源
2.程序推動順序不當
解決
1.預防死鎖(摒棄除1之外的條件)
2.避免死鎖(銀行家算法)
3.檢測死鎖(資源分配圖)
4.解除死鎖
tcp建立流程
TCP創建鏈接須要三次握手,釋放鏈接須要四次握手。
三次握手:客戶端向服務器發送信序號,服務器返回序號而且加上本身的序號,客戶端發送序號+1給予確認
四次揮手:客戶端向服務器請求斷開,服務器接收請求,服務器發送關閉信息,客戶端再回復服務器已斷開
處理過的最難的驗證碼?
12306點擊圖片驗證碼。原理:圖片發送給打碼平臺,平臺返回圖片位置數值,經過計算返回數字和圖片座標的關係,進行模擬登錄
注意:本篇文章是我的總結,僅供參考。若出現其餘問題,與寫者無關,切勿用於商業獲取福利!
若是總結有勿,或者交流與學習,請與寫着聯繫!qq:1349176744