一、http
python中有一个第三方库叫'requests'中提供了所有和http请求相关的函数。
1.get请求
get(url, params=None) - 发送请求,获取服务器返回的响应。
url - 请求地址
params - 请求参数,字典
方法一:(既适用于get也适用于post)
url = 'https://www.baidu.com/'
params = {'tn': '21002492_21_hao_pg'}
response = requests.get(url, params)
print(response)
方法二:只适用于get请求 - 参数写到url后面
url = 'https://www.baidu.com/?tn=21002492_21_hao_pg'
response = requests.get(url)
print(response)
2.获取请求结果
1)响应头
print(response.headers)
2)响应体(数据)
a.获取二进制对应的原数据
content = response.content
print(type(content))
b.获取字符串类型的数据
text = response.text
print(type(text))
c.获取json数据(json转换成python对应的数据)
json = response.json()
print(type(json))
二、多线程
1.线程基础
每个进程中默认都有一条线程,这个线程叫主线程。其他线程叫子线程。
threading模块中Thread的对象就是线程对象,当程序中需要子线程就创建Thread类的对象。
1.创建对象
Thread(target=None, args=()) - 创建并且返回一个子线程对象
target - 函数类型(function),在线程启动的时候这个函数会在子线程中执行
args - 元组,元组中的元素就是target对应的函数在子线程中调用的时候传的实参
t1 = threading.Thread(target=download, args=('魔童降世',))
2.启动线程
线程对象.start() - 让线程去执行线程中的任务
target(*args)
2.多线程二
程序结束:
线程中的任务执行完成线程就结束;程序出现异常结束的是线程,不是进程。
进程中的所有线程都结束进程才结束。
声明多线程类
1.声明一个类继承Thread
2.实现类中的run方法,这个方法中的代码就是需要在子线程中执行的代码
3.需要子线程的时候就创建自己声明的类的对象,并且不需要任何参数
3.join的用法
线程对象.join() - 当前线程对象任务执行完成后才能去执行后面的代码。