day35 python socket 单线程的并发 io多路复用 协程 greenlet模块 gevent模块 一.socket相关 1.socket: 所有的网络请求都是基于socket实现的,默认是阻塞的 2.requests是用的socket的客户端 3.socket到底哪端(谁)发生了变化 如果客户端向服务端发起连接时, 则服务端发生了变化 如果服务端向客户端发送数据时, 则客户端发生了变化 conn,addr = server.accept() conn.recv() 4.如果想要提高并发(目前有以下两种) 多进程: 计算密集型 多线程: io密集型,如socket请求 二.单线程的并发 需求: 模拟浏览器发送请求: 向百度发送请求搜索三个关键词 1.单线程(串行): 使用requests模块 import requests key_list = ['bajie','wukong','datang'] for item in key_list: ret = requests.get( url="https://www.baidu.com/s?wd=%s" % (item,), headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox