一.recode
1.正則符號
匹配字符:. \w \s \d (\b, ^, $, \B) \W \S \D [] [^]
控制次數(shù):* + ? {} *? +? ?? {N,}? {N,M}? {,N}? (在次數(shù)后加?代表次數(shù)盡可能少的去匹配)
分之:|
分組:() --> 分組吹散,捕獲娘赴,重復(\數(shù)字)
正則符號的轉(zhuǎn)義:想要讓有特殊功能的符號表示它本身玩荠,就可以通過\去轉(zhuǎn)義
除了\和-略水,其他的符號放在[]都表示符號本身
2.re模塊
compile --> 將正則表達式轉(zhuǎn)換成對象
a.匹配相關的:match, fullmatch --> 返回值是匹配對象/None
span(), start(), end(), group(), string
b.查找:search(正則表達式, 字符串) --> 返回值是匹配對象/None
去字符串中查找滿足正則表達式的子串焦匈,如果有只第一個滿足條件的字符串的匹配對象
findall --> 獲取所有滿足正則條件的子串租幕,返回一個元素是字符串的列表微猖。如果正則中有分組戒职,只取分組中的內(nèi)容
finditer --> 獲取所有滿足正則條件的子串, 返回一個迭代器,迭代器中的內(nèi)容是匹配對象
c.切割
split --> 按滿足正則條件的子串對字符串進行切割
d.替換
sub(正則表達式, 替換值, 字符串)
二.socket服務器
socket又叫套接字绢陌,實現(xiàn)網(wǎng)絡通信的兩端就是套接字挨下。分為服務器對應的套接字和客服端對應的套接字
python通過提供socket標準來支持socket編程。
socket編程即使用程序?qū)崿F(xiàn)服務器和客服端
import socket
寫一個服務器程序
1.創(chuàng)建服務器對應的套接對象
socket(family,type)
familt: 設置ip類型 AF_INET(ipv4) -->默認值 AF_INET6(ipv6)
type:設置傳輸類型 SOCK_STREAM(TCP可靠傳輸)-->默認值 SOCK_DGRAM(UDP不可靠傳輸)
2.綁定ip和端口
bind((ip脐湾,端口))
ip:服務器的地址
端口:不同的端口用來區(qū)分電腦上不同服務臭笆,取值范圍是0-65535,注意0-1024屬于著名端口(用來綁定特殊服務端口秤掌,不要隨便使用)
注意:同一時間同一個端口只能綁定一個服務器
3.監(jiān)聽請求
listen(個數(shù)) ---->需要通過數(shù)字設置服務器一次可以出來最大的請求個數(shù)
4.讓服務器一直處于啟動狀態(tài)
5.接受客服端的請求
執(zhí)行到accept()愁铺,程序會停下來,直到客服端在請求這個服務器的時候才會往下執(zhí)行机杜。返回會話和客服端的地址
6.服務器給客服端發(fā)送數(shù)據(jù)()
send(date) --->發(fā)送數(shù)據(jù)
date:需要發(fā)送數(shù)據(jù)帜讲,要求是二進制數(shù)據(jù)(bytes)
a.str 轉(zhuǎn) bytes:
bytes(字符串,encoding='utf8')
字符串.encode(編碼方式)
發(fā)送一張圖片
[圖片上傳失敗...(image-a2a3e8-1540380367083)]
7.接受客服端發(fā)送的消息
recv(字節(jié)數(shù))--->接受客服端發(fā)送的數(shù)據(jù),參數(shù)是用來設置一次能接受的最大字節(jié)數(shù)返回值是接受到的數(shù)據(jù)椒拗,
接受到是二進制
bytes 轉(zhuǎn) 字符串
str(二進制,encoding='utf-8')
二進制.decode(編碼方式)
注意:recv方法也會阻塞線程获黔,程序允許到這兒會停下來等蚀苛,等到對方發(fā)消息為止
三.socket客服端
import socket
1.創(chuàng)建客服端套接字
2.連接服務器
connect(地址)
3.接受服務器返回的數(shù)據(jù)
4.給服務器發(fā)送消息
四.socket服務器升級
import socket
1.創(chuàng)建服務器套接字
2.綁定地址
3.監(jiān)聽
讓服務器一直處于接聽狀態(tài)
五.接受圖片客服端
import socket
六.requsets請求
python中沒有一個標準庫來支持網(wǎng)絡請求,但是目前有個第三方庫玷氏,支持http
import socket
requests.get(url, params)
url-->請求地址
params -->客服端給服務器發(fā)送的數(shù)據(jù)(字典){參數(shù)名:值}