-
python笔记27(网络编程--网络基础介绍)
一、内容回顾
1、re模块
1.findall 找到所有符合规则的项,并返回列表
2.search 找到第一个符合规则的项,并返回一个对象
3.match 从头开始,找到第一个符合规则的项,并返回一个对象
4.finditer 找到所有符合规则的项,并返回一个迭代器
5.compile 预编译一个正则规则,节省多次使用同一个正则的编译
6.sub 替换 默认替换所有,可以使用替换深度参数
7.bsub 替换返回元组
8.split 根据正则规则切割,返回列表,默认不保留切掉的内容
2、正则分组
1.分组命名,(?P<组名>正则)
2.引用分组,(?P=组名)
3.findall和分组,优先显示分组中的内容,(?:)取消这个分组的优先
4.split和分组
split会保留正则中分组内匹配到的内容
5.search和分组
search取分组中的内容,通过索引取obj.group(1),通过组名取obj.group(‘组名’)
元字符、量词、惰性符号
3、补充
[],[^]:带有特殊意义的元字符到字符组内大部分取消其特殊含义。
如果担心出现特殊含义:加\
会取消的:[()+.] - [(-)] -的位置决定了它的意义,写在字符组的第一个位置就表示一个普通的横杠。- 写在字符组的其他任何位置都是表示一个范围。
正则表达式深入学习---《正则指引》
找出<h1>123fh</h1><h2>hado</h2>中所有标签内的字符串 爬虫
import re
ret=re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>')
print(ret)
找出四则运算表达式中的第一个乘除法
\d(\.\d+)?[*/]-?\d(\.\d+)?
检测用户输入的是否为标准身份证号码:
[1-9]\d{14}(\d{2}[\dx])?
#如果使用findall,^[1-9]\d{14}(\d{2}[\dx])?$
#建议使用match和search
match:[1-9]\d{14}(\d{2}[\dx])?$
search:^[1-9]\d{14}(\d{2}[\dx])?$
4、网络基础
1.两个运行中的程序如何传递信息?
通过文件
2.两台机器上的两个运行中的程序如何通信?
通过网络
网络应用开发架构
C/S 迅雷 qq 浏览器 飞秋 输入法 百度云 pycharm git VNC 红蜘蛛 各种游戏
client 客户端
server 服务端
B/S 淘宝 邮箱 各种游戏 百度 博客园 知乎 豆瓣 抽屉
browser 浏览器
server 服务端
统一程序的入口
B/S和C/S架构的关系
B/S是特殊的C/S架构
网卡 :是一个实际存在在计算机中的硬件
mac地址 :每一块网卡上都有一个全球唯一的mac地址
交换机 :是连接多台机器并帮助通讯的物理设备,只认识mac地址
协议 :两台物理设备之间对于要发送的内容,长度,顺序的一些约定
ip地址
ipv4协议 位的点分十进制 32位2进制表示
0.0.0.0 - 255.255.255.255
ipv6协议 6位的冒分十六进制 128位2进制表示
0:0:0:0:0:0-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
公网ip
为什么你的外地朋友的电脑我们访问不了
每一个ip地址要想被所有人访问到,那么这个ip地址必须是你申请的
内网ip
192.168.0.0 - 192.168.255.255
172.16.0.0 - 172.31.255.255
10.0.0.0 - 10.255.255.255
交换机实现的arp协议
通过ip地址获取一台机器的mac地址
网关ip 一个局域网的网络出口,访问局域网之外的区域都需要经过路由器和网关
网段 指的是一个地址段 x.x.x.0 x.x.0.0 x.0.0.0
ip地址
子网掩码 判断两台机器是否在同一个网段内的
255.255.255.0 子网掩码
11111111.11111111.11111111.00000000
192.168.12.87
11000000.10101000.00001100.01010111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000 192.168.12.0
192.168.12.7
11000000.10101000.00001100.00000111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000 192.168.12.0
ip 地址能够确认一台机器
port 端口
0-65535
80
ip + port 确认一台机器上的一个应用
5、socket基本结构
import socket
#服务器端
sk=socket.socket() #买手机
sk.bind(('127.0.0.1',9000)) #绑定手机卡
sk.listen() #开机
conn,addr=sk.accept() #等着接电话
conn.send(b'hello') #发送信息
msg=conn.recv(1024) #接收信息
print(msg)
conn.close() #挂电话,关闭连接
sk.close() #关机,关闭socket
#客户端
import socket
sk=socket.socket()
sk.connect(('127.0.0.1',9000)) #连接服务器
msg=sk.recv(1024) #接收信息
print(msg)
sk.send(b'byebye') #发送信息
sk.close() #关闭socket
day27
一、内容回顾
1、re模块
1.findall 找到所有符合规则的项,并返回列表
2.search 找到第一个符合规则的项,并返回一个对象
3.match 从头开始,找到第一个符合规则的项,并返回一个对象
4.finditer 找到所有符合规则的项,并返回一个迭代器
5.compile 预编译一个正则规则,节省多次使用同一个正则的编译
6.sub 替换 默认替换所有,可以使用替换深度参数
7.bsub 替换返回元组
8.split 根据正则规则切割,返回列表,默认不保留切掉的内容
2、正则分组
1.分组命名,(?P<组名>正则)
2.引用分组,(?P=组名)
3.findall和分组,优先显示分组中的内容,(?:)取消这个分组的优先
4.split和分组
split会保留正则中分组内匹配到的内容
5.search和分组
search取分组中的内容,通过索引取obj.group(1),通过组名取obj.group(‘组名’)
元字符、量词、惰性符号
3、补充
[],[^]:带有特殊意义的元字符到字符组内大部分取消其特殊含义。
如果担心出现特殊含义:加\
会取消的:[()+.] - [(-)] -的位置决定了它的意义,写在字符组的第一个位置就表示一个普通的横杠。- 写在字符组的其他任何位置都是表示一个范围。
正则表达式深入学习---《正则指引》
找出<h1>123fh</h1><h2>hado</h2>中所有标签内的字符串 爬虫
import re
ret=re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>')
print(ret)
找出四则运算表达式中的第一个乘除法
\d(\.\d+)?[*/]-?\d(\.\d+)?
检测用户输入的是否为标准身份证号码:
[1-9]\d{14}(\d{2}[\dx])?
#如果使用findall,^[1-9]\d{14}(\d{2}[\dx])?$
#建议使用match和search
match:[1-9]\d{14}(\d{2}[\dx])?$
search:^[1-9]\d{14}(\d{2}[\dx])?$
4、网络基础
1.两个运行中的程序如何传递信息?
通过文件
2.两台机器上的两个运行中的程序如何通信?
通过网络
网络应用开发架构
C/S 迅雷 qq 浏览器 飞秋 输入法 百度云 pycharm git VNC 红蜘蛛 各种游戏
client 客户端
server 服务端
B/S 淘宝 邮箱 各种游戏 百度 博客园 知乎 豆瓣 抽屉
browser 浏览器
server 服务端
统一程序的入口
B/S和C/S架构的关系
B/S是特殊的C/S架构
网卡 :是一个实际存在在计算机中的硬件
mac地址 :每一块网卡上都有一个全球唯一的mac地址
交换机 :是连接多台机器并帮助通讯的物理设备,只认识mac地址
协议 :两台物理设备之间对于要发送的内容,长度,顺序的一些约定
ip地址
ipv4协议 位的点分十进制 32位2进制表示
0.0.0.0 - 255.255.255.255
ipv6协议 6位的冒分十六进制 128位2进制表示
0:0:0:0:0:0-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
公网ip
为什么你的外地朋友的电脑我们访问不了
每一个ip地址要想被所有人访问到,那么这个ip地址必须是你申请的
内网ip
192.168.0.0 - 192.168.255.255
172.16.0.0 - 172.31.255.255
10.0.0.0 - 10.255.255.255
交换机实现的arp协议
通过ip地址获取一台机器的mac地址
网关ip 一个局域网的网络出口,访问局域网之外的区域都需要经过路由器和网关
网段 指的是一个地址段 x.x.x.0 x.x.0.0 x.0.0.0
ip地址
子网掩码 判断两台机器是否在同一个网段内的
255.255.255.0 子网掩码
11111111.11111111.11111111.00000000
192.168.12.87
11000000.10101000.00001100.01010111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000 192.168.12.0
192.168.12.7
11000000.10101000.00001100.00000111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000 192.168.12.0
ip 地址能够确认一台机器
port 端口
0-65535
80
ip + port 确认一台机器上的一个应用
5、socket基本结构
import socket
#服务器端
sk=socket.socket() #买手机
sk.bind(('127.0.0.1',9000)) #绑定手机卡
sk.listen() #开机
conn,addr=sk.accept() #等着接电话
conn.send(b'hello') #发送信息
msg=conn.recv(1024) #接收信息
print(msg)
conn.close() #挂电话,关闭连接
sk.close() #关机,关闭socket
#客户端
import socket
sk=socket.socket()
sk.connect(('127.0.0.1',9000)) #连接服务器
msg=sk.recv(1024) #接收信息
print(msg)
sk.send(b'byebye') #发送信息
sk.close() #关闭socket
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程