requests的使用(二)

67 阅读2分钟

上传文件

注意我们使用 files = ** 这里面的files是一个打开的文件对象

import requests
url = "http://httpbin.org/post?a=Ok"

textfile = {"file":open("request_test.py","rb")} # 一般

response2 = requests.post(url,files=textfile)
print(response2.text)

标准化后的数据的样子

{
  "args": {
    "a": "Ok"
  }, 
  "data": "", 
  "files": {
    "file": "# encoding:utf-8\n\n\"\"\"\n\u4ecb\u7ecdrequests\u7684\u57fa\u7840\u4fe1\u606f\n\n\"\"\"\n\n\nimport requests\nr = requests.get(\"http://www.baidu.com\")\n\nprint(type(r))  # <class 'requests.models.Response'>\nprint(r.status_code) # 200\nprint(r.url)     # http://www.baidu.com/\nprint(r.headers)   #{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Thu, 25 Nov 2021 08:56:15 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:52 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}\nprint(r.cookies)   # <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>\nprint(r.content) # \u7f51\u9875\u5185\u5bb9\nprint(type(r.content))  # <class 'bytes'>\nprint(r.text)   # \u7f51\u9875\u5185\u5bb9\nprint(type(r.text))    # <class 'str'>\nprint(r.history)      # []\nprint(r.encoding)     # ISO-8859-1\nprint(r.is_redirect)  # \u662f\u5426\u91cd\u5b9a\u5411 False\nprint(r.links)    # \u5b50\u94fe\u63a5 {}"
  }, 
  "form": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "1180", 
    "Content-Type": "multipart/form-data; boundary=e4c064ed131e71b4b8ed50f4972e8fcf", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.25.1", 
    "X-Amzn-Trace-Id": "Root=1-619f54bf-3d7ed1f054e5ed2f3ec2c63f"
  }, 
  "json": null, 
  "origin": "xxx.xxx.xxx.xx", 
  "url": "http://httpbin.org/post?a=Ok"
}

cookies的获取

cookies的获取,用于展示cookies的数据

import requests
headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);"}
r = requests.get("https://www.baidu.com/",headers=headers)
print(r.cookies)
for key, value in r.cookies.items():
    print(key + ' = ' + value)

数据的展示

<RequestsCookieJar[<Cookie BAIDUID=447CEE48BDC3A786AD10C965416C4207:FG=1 for .baidu.com/>, <Cookie BIDUPSID=447CEE48BDC3A786EDFE96B739FEA2A7 for .baidu.com/>, <Cookie H_PS_PSSID=34446_35105_31253_35239_35049_34584_34517_35246_34871_26350_35145_35301 for .baidu.com/>, <Cookie PSTM=1637831971 for .baidu.com/>, <Cookie BDSVRTM=0 for www.baidu.com/>, <Cookie BD_HOME=1 for www.baidu.com/>]>
BAIDUID = 447CEE48BDC3A786AD10C965416C4207:FG=1
BIDUPSID = 447CEE48BDC3A786EDFE96B739FEA2A7
H_PS_PSSID = 34446_35105_31253_35239_35049_34584_34517_35246_34871_26350_35145_35301
PSTM = 1637831971
BDSVRTM = 0
BD_HOME = 1

cookie信息进行登录

这个没有信息展示,在这个部分代码的格式如下

import requests
headers = {
    'Cookie': 'xxxxxx',
    'Host': 'xxxxx',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36',
}
r = requests.get('xxxxxxx', headers=headers)
print(r.text)