zoukankan      html  css  js  c++  java
  • 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
    
    
  • 相关阅读:
    python中selenium+unittest实操
    python+selenium元素定位04——浏览器多窗口处理
    python+selenium元素定位03——自动化常见场景处理
    python+selenium元素定位02——层级定位
    requests.post() 方法的使用
    python+selenium元素定位01——显式、隐式等待
    python+selenium之元素识别二
    IO流常用基类
    STS中导入Jmeter源码遇到的坑
    MySql处理日期时间常用函数
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/12452759.html
Copyright © 2011-2022 走看看