Python Socket
python socket 编程socket 基于C/S架构 通常两个文件一个服务端(server) 一个客户端(client)
import socket 模块
socket 类型&解释1234567891011121314151617socket.AF_UNIX # 只能够用于单一的Unix系统进程间通信socket.AF_INET # ipV4socket.AF_INET6 # ipv6socket.SOCK_STREAM # 流式socket , for TCPsocket.SOCK_DGRAM # 数据报式socket , for UDPsocket.SOCK_SEQPACKET # 可靠的连续数据包服务socket.SOCK_RAW# 原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;# 其次,SOCK_RAW也可以处理特殊的IPv4报文;# 此外,利用原始套接字,可以通过 IP_HDRINCL 套接字选项由用户构造IP头
创建TCP Socket:
1s = socket.socket(socket.AF_ ...
Py装饰器Decorator
装饰器(Decorator)装饰器本质是个函数,用来给别的函数增加功能
装饰器可以在代码运行期间动态地增加函数的功能
想要给多个函数增加相同的功能,一个一个地修改效率很低而且可读性差,所以采用装饰器
基础语法1234567891011121314151617181920def 装饰器名(被装饰函数): # 装饰器 def 内容函数名(如果被装饰函数有参数那么输入 *args ): # 运行的内容 *args是执行的其他函数所带的参数(多少都行),如果没带可以留空 XX内容 XX内容 被装饰函数(如果被装饰函数有参数那么输入 *args ) # 如果被装饰函数中含有reture则需要返回被装饰函数 # 没有则不需要 return 内容函数名@装饰器名def 被装饰函数(): 内容直接调用被装饰函数就行
例子12345678910111213141516171819202122232425262728293031323334353637383940# 判断是否是质数import t ...
反爬虫对策--持续更新
最最基础加个请求头
12345678headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' 'AppleWebKit/537.36 (KHTML, like Gecko)' 'Chrome/105.0.0.0 Safari/537.36' 'origin': # 源头 'referer': # 引用源地址}
超强库!!seleniumの使用笔记
selenium简单食用导入123from selenium import webdriver # 导入引擎方法from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service # 解决版本更新,方法过时后报错
学会的方法–持续更新设置渲染规则1234567891011121314151617181920op = webdriver.ChromeOptions()# op.add_argument("--headless") 添加规则--无头模式(不显示浏览器窗口)op.headless = True # 后面发现无头模式,这种写法也行driver_path = Service(r'浏览器引擎的绝对路径') # 导入浏览器引擎driver = webdriver.Chrome(service = driver_path, options = op)driver.get("") # ...
爬虫--BeautifulSoup解析库使用
解析提取网页数据用的库
12345678910from bs4 in BeautifulSoup # 引入bs库。换代可能变,记得看文档find (tag, attributes, recursive, text, keywords) # 这是官方文档全的方法find_all (tag, attributes, recursive, text, keywords) # 这是官方文档全的方法find_all()变量 = BeautifulSoup( 要解析的字符串, ' 解释器 ' )# 解释器,用到一个内置库:html.parser 这个不是唯一的,是比较简单的
实例讲解12345678910111213141516171819202122232425262728293031323334353637import requests from bs4 import BeautifulSoup# 请求&转换成字符串数据url = ' 'res = requests.get(url)htmltxt = res.text# ...
爬虫--Requests库使用
最基本123requests.get(url, headers, params) # 链接 # 请求头 # 参数(连接)requests.post(url, headers, params)
返回数据类型为:Response
Response对象的常用属性12345678910111213response.status_code # 检查请求是否成功 打印会返回状态码response.content # 把response对象转换为二进制数据 一般抓取图片用response.text # 把response对象转换为字符串数据response.encoding # 定义response对象的编码response.cookies # 服务器发回的cookiesxxxjson = response.json() # 将返回的json格式数据转为字典例: res = requests.get(url) # 打印变量res的响应状态码,以检查请求是否成功 print(res.status_code) # 返回状态码具体查笔记
使用 ...
Python学习笔记
解题思路
分析问题,明确结果
思考需要的知识
思考切入点
尝试解决一部分
重复1-4步
转义字符\a 响铃(BEL)
\b 退格(BS)将当前位置移动到前一列
\f 换页(FF)将当前位置移动到下一页开头
\n 换行(LF)将当前位置下行开头
\r 回车(CR)将当前位置移动到本行开头
\t 水平制表(HT)(跳到下一个TAB位置)
\v 垂直制表(VT)
\\ 代表一个反斜线字符 “"
\' 代表一个单引号
\'' 代表一个双引号
\0 空字符
\ddd 1到3位八进制所代表的任意字符
\xhh 1到2位十六进制所代表的任意字符
PrintPrint():
单引号不管啥都可打印
双引号可以引出内容的标点符号
三引号跨行输出具体
/n实现换行:
Print(XXX,/nXXX,/nXXX)
变量&赋值赋值例:
123name='小埋'print(name)输出:小埋
变量例:
1234name='小埋'name='02'print(name)输出:02
变量的 ...
测试文章
条件判断:
单项判断 if:
#条件后记得跟进英文冒号,回车后自动缩进
12if XXXX :缩进 print()
双向判断 if…else… :
1234if XXXX : Print(XXXX)else: print(XXXX)
多项判断 if…elif…else… :
12345678if XXXX : Print(XXXX)elif XXXX: #条件1不满足执行 Print(XXXX)elif XXXX: #同上 Print(XXXX)else: #以上条件都不满足后执行 Print(XXXX)