正则表达式
作用:实现对字符串的复杂控制
模块:re(系统模块)
方法:
1.split(pattern,string),使用字符串中与pattern规则匹配的内容进行分割,返回一个列表
pattern,正则表达式
string,待处理的字符串
2.sub(pattern,repl,string),使用字符串中与pattern规则匹配的内容进行替换(替换成repl)。
pattern,正则表达式
repl,新内容
string,待处理的字符串
3.findall(pattern,string,[控制字符]),以列表返回字符串中与pattern规则匹配的内容,如果没有匹配的则返回一个空列表
pattern,正则表达式
string,待处理的字符串
控制字符:re.S,使元字符.可以匹配包括换行符\n在内的所有字符
re.I,忽略大小写
元字符
\w,匹配一个单词字符(字母数字下划线)
\W,匹配一个非单词字符
\d,匹配一个数字字符
\D,匹配一个非数字字符
\s,匹配一个空白字符
\S,匹配一个非空白字符
.,匹配除换行符\n以外的任意一个字符
^,匹配字符串开头
$,匹配字符串结尾
*,表示匹配前一个字符任意次
+,表示匹配前一个字符至少1次
?,表示匹配前一个字符0次或1次
{n},表示匹配前一个字符n次
{n,},表示匹配前一个字符至少n次
{n,m},表示匹配前一个字符至少n次,最多m次
{,m},匹配前一个字符最多m次
网络编程
OSI模型:7层
TCP\IP模型:4层
应用层:HTTP,HTTPS,FTP,SMTP,IMAP,POP3
HTTP协议请求方法(最常用):GET(获取),POST(提交)
传输层:TCP,UDP
建立连接:三次握手
断开连接:四次挥手
socket编程
套接字,工作在传输层与应用层之间,通过TCP或者UDP协议传输信息,分为客户端和服务端。
模块:socket
使用步骤:
服务端
1. 创建socket对象:soc=socket.socket()
2.绑定IP和端口(0-65535):soc.bind((ip,port))
3.设置监听:soc.listen()
soc.listen(5) 表示同时监听5个客户端,不传入则默认没有限制
4.等待客户端连接:soc.accept()
client,addr=soc.accept() 返回客户端对象与地址
客户端
1.创建socket对象:soc=socket.socket()
2.连接服务器:soc.connect((ip,port))
公共方法:
send(),发送消息
recv(),接收消息
request:模拟客户端向服务端发送http或者https请求
模块:requests-------pip install requests
GET请求:get(url[,params,headers,file])
url:请求地址
params:请求的参数,一般使用字典传入
header:请求头
file:一般用于上传文件
例:获取豆瓣电影排行榜
按照评分从高到低排序
movies.sort(key=lambda x:x[1],reverse=True)
print(movies)
例:从网站下载图片