Day32 网络编程 笔记
正则模块
# 正则表达式
# 元字符 :
. 匹配除了回车以外的所有字符
\w 数字字母下划线
\d 数字
\n \s \t 回车 空格 和 tab
^ 必须出现在一个正则表达式的最开始,匹配开头
$ 必须出现在一个正则表达式的最后,匹配结尾
| 或
a|b 要么取左边的要么取右边的
()|() 分组中的或 一定是长的在前面 短的在后面
[] 在同一个位置上可能出现的所有字符都放在组里
[^] 在同一个位置上不能出现的所有字符都放在组里
() 对于一整个组做量词约束 ; python 分组优先
# 量词 :
* 0、多次
+ 1、多
? 0、1
{} 具体的 {n},{n,m},{n,}
# 问号的用法
# 惰性匹配 : 量词+? 表示使用惰性匹配
# 分组优先 findall split ;取消分组优先 (?:。。。)
# 分组命名 (?P<name>...)
ret=re.findall(r"\d+","1-2*(60+(-40.35/5)-(-4*3))") print(ret) # 有的时候 不想要的内容需要被匹配出来 # 你不想要的东西包含着你想要的东西 ret=re.findall(r"\d+\.\d+|(\d+)","1-2*(60+(-40.35/5)-(-4*3))") ret.remove('') print(ret)
--------------*******----------------
1.爬虫网站
import re from urllib.request import urlopen def getPage(url): response = urlopen(url) return response.read().decode('utf-8') def parsePage(s): com = re.compile( '<div class="item">.*?<div class="pic">.*?<em .*?>(?P<id>\d+).*?<span class="title">(?P<title>.*?)</span>' '.*?<span class="rating_num" .*?>(?P<rating_num>.*?)</span>.*?<span>(?P<comment_num>.*?)评价</span>', re.S) ret = com.finditer(s) for i in ret: yield { "id": i.group("id"), "title": i.group("title"), "rating_num": i.group("rating_num"), "comment_num": i.group("comment_num"), } def main(num): url = 'https://movie.douban.com/top250?start=%s&filter=' % num response_html = getPage(url) ret = parsePage(response_html) print(ret) f = open("move_info7", "a", encoding="utf8") for obj in ret: print(obj) data = str(obj) f.write(data + "\n") f.close() if __name__ == '__main__': count = 0 for i in range(10): main(count) count += 25
2.网络编程
B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。
B/S 有什么好?统一了所有应用的入口
手机端 为什么B/S没火起来:统一了所有应用的入口 —— 微信
"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。
C/S 架构 几乎包含了所有网络开发的架构形态
B/S 架构 也是C/S架构
B/S 架构中的client都是browser浏览器
统一了所有应用的入口 —— 趋势
# 网络
# 底层的
# 网卡 mac地址 :地址永远不会变,且每块卡都拥有一个唯一的Mac
# 局域网
# 交换机 : 同一个局域网内的机器之间的交流
# 路由器 : 跨局域网机器之间的交流
# 网关ip : 跨局域网的机器之间不能直接通信,只能通过网关ip通信
# 为什么有局域网:
# 8位 2进制
# asc码 只有 255 个
# 00000001 --> 1
# ip地址代表了你在一个网络中的位置
# 是一个四位点分十进制
# 范围是 0.0.0.0 - 255.255.255.255
# 11111111.1111111.1111111.1111111
# mac地址唯一的,为什么要有ip地址?
# 192.168.11.***
# 256台 0-255
# 192.168.***.***
# 256^2
# 192.***.***.***
# 256^3
# 子网掩码
# 网络地址ip和子网掩码ip做按位与运算 如果结果相同 那么说明在同一个网段内
#192.168.12.62
#11000000.10101000.00001011.00111110
#11111111.11111111.11111111.00000000
#11000000.10101000.00001011.00000000 == 192.168.0.0
#255.255.0.0
#192.168.11.94
#255.255.0.0
# 11000000.10101000.00001011.01011110
# 11111111.11111111.11111111.00000000 == 192.168.0.0
浙公网安备 33010602011771号