一、python面向对象编程
1.变量
(1)定义:关联一个对象的标识符
(2)命名:必须是字母或下划线开头,后跟字母、数据、下划线
(3)语法:变量名 = 数据
2.删除语句
(1)语法:del 变量名
(2)作用:删除变量,释放内存
当对象没有绑定变量的时候,会自动被销毁。
3.语句
(1)if-else:
if 条件1:
语句块1
elif 条件2:
语句块2
else :
语句块3
(2)while:
while 条件:
do something.
(3)for:
for 变量列表 in 可迭代对象:
语句块
(4)range函数
语法:range(开始点,结束点,间隔)
返回的数字不包含结束点;开始点默认为0;间隔默认为1;
(5)break
(6)continue
4.运算符
(1)基础运算符
+ 、 += 、 * 、*= 、 <<= 、 >>= 、 == 、 !=
(2)成员运算符
数据 in 序列 、 数据 not in 序列
5.切片slice
(1)语法: 容器[开始索引 : 结束索引: 步长]
(2)说i名: 不包含结束索引;补偿是每次获取完的偏移量;都可以省略;
6.深拷贝和浅拷贝
深拷贝:复制整个依赖的变量;
浅拷贝:复制过程中,只复制一层变量,不会复制深层变量绑定的对象的复制过程。
7.列表与字符串的转化
(1)列表转字符串
result = "连接符".join(列表)
(2)字符串转列表
列表 = “a-b-c-d”.split("分隔符")
8.函数
(1)语法
def 函数名(形式参数):
函数体
(2)返回值
return 后没有语句,相当于返回None;没有return,相当于返回None.
9.面向对象
(1)思想:世界上的每个人或事务都能看成一个对象,每个对象都有自己的属性和行为,对象与对象之 间通过方法来交互。面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建 立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为.
(2)类
构成: 类名、类的属性、类的方法
代码:
class student(object):
def __init__(self):
self.number = 123123
def learn(self):
pass
if __name__ == '__main__':
s = student()
s.learn()
二、requests的使用
安装方法 : pip/pip3 install requests
1.发送get请求
import requests
url = "https://www.baidu.com"
resp = requests.get(url)
print(resp.text)
2.responce 响应对象
import requests
url = "https://www.baidu.com"
resp = requests.get(url)
# print(resp.text)
print(resp.content.decode())
通过responce.content.decode("utf-8")来解决中文乱码问题,默认为utf-8;
3.responce的其他方法
response.url 响应的 url ;有时候响应的 url 和请求的 url 并不一致response.status_code 响应状态码response.request.headers 响应对应的请求头response.headers 响应头response.request._cookies 响应对应请求的 cookie ;返回 cookieJar 类型response.cookies 响应的 cookie (经过了 set-cookie 动作;返回 cookieJar 类型response.json() 自动将 json 字符串类型的响应内容转换为 python 对象( dict or list )
import requests
# 发送请求,获取response响应
response = requests.get("http://www.baidu.com")
# 查看响应内容,response.text 返回的是str类型
print(response.text)
# 查看响应内容,response.content返回的字节流数据
print(respones.content)
# 查看响应的url地址
print(response.url)
# 查看响应头部字符编码
print(response.encoding)
# 查看响应状态码
print(response.status_code)
4.发送带header的请求
import requests
url = 'https://www.baidu.com'
response = requests.get(url)
print(response.content.decode()) # 源码内容获取不完整
# 打印响应对应请求的请求头信息
print(response.request.headers)
# --------------------------分割线-----------------------------------------
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# 在请求头中带上User-Agent,模拟浏览器发送请求
response1 = requests.get(url, headers=headers)
print(response1.content.decode()) # 源码获取完整
# 打印请求头信息
print(response1.request.headers)
结论: headers 的作用:模拟浏览器,欺骗服务器,获取和浏览器一致的内容
5.发送带参数的请求
(1)url中带参数
import requests
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# url中带有参数
url = 'https://www.baidu.com/s?wd=python'
response = requests.get(url, headers=headers)
print(response.content.decode())
(2)通过params系带参数字典
import requests
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# 这是目标url
# url = 'https://www.baidu.com/s?wd=python'
# 最后有没有问号结果都一样
url = 'https://www.baidu.com/s?'
# 请求参数是一个字典 即wd=python
kw = {'wd': 'python'}
# 带上请求参数发起请求,获取响应
response = requests.get(url, headers=headers, params=kw)
print(response.content.decode())