一.recode
1.正則符號(hào)
匹配字符:. \w \s \d (\b, ^, $, \B) \W \S \D [] [^]
控制次數(shù):* + ? {} *? +? ?? {N,}? {N,M}? {,N}? (在次數(shù)后加?代表次數(shù)盡可能少的去匹配)
分之:|
分組:() --> 分組,捕獲,重復(fù)(\數(shù)字)
正則符號(hào)的轉(zhuǎn)義:想要讓有特殊功能的符號(hào)表示它本身,就可以通過\去轉(zhuǎn)義
除了\和-,其他的符號(hào)放在[]都表示符號(hào)本身
2.re模塊
compile --> 將正則表達(dá)式轉(zhuǎn)換成對(duì)象
a.匹配相關(guān)的:match, fullmatch --> 返回值是匹配對(duì)象/None
span(), start(), end(), group(), string
b.查找:search(正則表達(dá)式, 字符串) --> 返回值是匹配對(duì)象/None
去字符串中查找滿足正則表達(dá)式的子串,如果有只第一個(gè)滿足條件的字符串的匹配對(duì)象
findall --> 獲取所有滿足正則條件的子串,返回一個(gè)元素是字符串的列表。如果正則中有分組,只取分組中的內(nèi)容
finditer --> 獲取所有滿足正則條件的子串, 返回一個(gè)迭代器,迭代器中的內(nèi)容是匹配對(duì)象
c.切割
split --> 按滿足正則條件的子串對(duì)字符串進(jìn)行切割
d.替換
sub(正則表達(dá)式, 替換值, 字符串)

二.socket服務(wù)器
socket又叫套接字,實(shí)現(xiàn)網(wǎng)絡(luò)通信的兩端就是套接字。分為服務(wù)器對(duì)應(yīng)的套接字和客服端對(duì)應(yīng)的套接字
python通過提供socket標(biāo)準(zhǔn)來支持socket編程。
socket編程即使用程序?qū)崿F(xiàn)服務(wù)器和客服端
import socket
寫一個(gè)服務(wù)器程序
1.創(chuàng)建服務(wù)器對(duì)應(yīng)的套接對(duì)象
socket(family,type)
familt: 設(shè)置ip類型 AF_INET(ipv4) -->默認(rèn)值 AF_INET6(ipv6)
type:設(shè)置傳輸類型 SOCK_STREAM(TCP可靠傳輸)-->默認(rèn)值 SOCK_DGRAM(UDP不可靠傳輸)

2.綁定ip和端口
bind((ip,端口))
ip:服務(wù)器的地址
端口:不同的端口用來區(qū)分電腦上不同服務(wù),取值范圍是0-65535,注意0-1024屬于著名端口(用來綁定特殊服務(wù)端口,不要隨便使用)
注意:同一時(shí)間同一個(gè)端口只能綁定一個(gè)服務(wù)器

3.監(jiān)聽請(qǐng)求
listen(個(gè)數(shù)) ---->需要通過數(shù)字設(shè)置服務(wù)器一次可以出來最大的請(qǐng)求個(gè)數(shù)

4.讓服務(wù)器一直處于啟動(dòng)狀態(tài)

5.接受客服端的請(qǐng)求
執(zhí)行到accept(),程序會(huì)停下來,直到客服端在請(qǐng)求這個(gè)服務(wù)器的時(shí)候才會(huì)往下執(zhí)行。返回會(huì)話和客服端的地址

6.服務(wù)器給客服端發(fā)送數(shù)據(jù)()
send(date) --->發(fā)送數(shù)據(jù)
date:需要發(fā)送數(shù)據(jù),要求是二進(jìn)制數(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ù)是用來設(shè)置一次能接受的最大字節(jié)數(shù)返回值是接受到的數(shù)據(jù),
接受到是二進(jìn)制
bytes 轉(zhuǎn) 字符串
str(二進(jìn)制,encoding='utf-8')
二進(jìn)制.decode(編碼方式)
注意:recv方法也會(huì)阻塞線程,程序允許到這兒會(huì)停下來等,等到對(duì)方發(fā)消息為止

三.socket客服端
import socket
1.創(chuàng)建客服端套接字

2.連接服務(wù)器
connect(地址)

3.接受服務(wù)器返回的數(shù)據(jù)

4.給服務(wù)器發(fā)送消息

四.socket服務(wù)器升級(jí)
import socket
1.創(chuàng)建服務(wù)器套接字

2.綁定地址

3.監(jiān)聽

讓服務(wù)器一直處于接聽狀態(tài)

五.接受圖片客服端
import socket

六.requsets請(qǐng)求
python中沒有一個(gè)標(biāo)準(zhǔn)庫來支持網(wǎng)絡(luò)請(qǐng)求,但是目前有個(gè)第三方庫,支持http
import socket
requests.get(url, params)
url-->請(qǐng)求地址
params -->客服端給服務(wù)器發(fā)送的數(shù)據(jù)(字典){參數(shù)名:值}

1.獲取響應(yīng)頭

2.拿二進(jìn)制形式的響應(yīng)體

3.拿字符串的形式的響應(yīng)體

4.拿json格式對(duì)應(yīng)python數(shù)據(jù)

