1、直接使用url,没用headers的请求
import requests url = 'http://www.baidu.com' # requests请求用get方法 response = requests.get(url) # 返回的content是字节 需要解码 data = response.content.decode() print(data) # 而text返回的是字符串类型 data = response.text print(data)
2、有headers的GET请求
requests的get参数,headers传入的参数是字典,不用转成字符串
import requests url = 'http://www.baidu.com' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36', } # requests请求用get方法 response = requests.get(url, headers=headers) # 1. 获取请求头 print(response.request.headers) # 2. 获取相应头 print(response.headers) # 3. 获取状态码 print(response.status_code) # 4. 请求的cookie print(response.request._cookies) # 5. 相应的cookie print(response.cookies)
而 url = 'http://www.baidu.com/s?wd=你好' 中的汉字会自动转义,不需要调用其他模块
import requests url = 'http://www.baidu.com/s?wd=你好' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36', } # requests请求用get方法 response = requests.get(url, headers=headers) data = response.content.decode() print(data)
import requests url = 'http://www.baidu.com/' params = { 'wd': '你好', } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36', } # requests请求用get方法 response = requests.get(url, headers=headers, params=params) data = response.content.decode() print(data)
import requests url = 'http://baidu.com' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36', } params = { 'wd': '你好' } free_proxy = { 'https': '153.232.156.201:8080', } # 加代理IP response = requests.get(url, headers=headers, params=params, proxies=free_proxy) data = response.content print(data.decode())
3、有headers的POST请求
import requests url = 'http://iclass.ncut.edu.cn/iclass/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36', } data = { 'login': '17159010225', 'password': '******', } # requests请求用post方法 response = requests.post(url, headers=headers, data=data) data = response.content with open('01 登录界面.html', 'wb') as fp: fp.write(data)