python之requests库

python之requests库

  • requests库
    • 请求方法
      • 示例get方法
      • get方法访问百度的输出
    • 指定方法发送请求
      • 简单的requests请求例子
      • response 响应对象的text和content之间的区别
      • 发送 带header的请求
      • 发送带参数的请求
      • 在headers参数中携带Cookie
        • 两种使用cookie的形式:
          • 1.
          • 2.
      • 超时参数(timeout)
      • 使用代理IP (proxies)
      • 使用verify参数忽略CA证书

requests库

需要安装后使用

环境安装:pip install requests

Requests模块是一个用于网络请求的模块,主要用来模拟浏览器发请求。其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能。但是这些模块都复杂而且差不多过时了,requests模块简单强大高效,使得其在众多网络请求模块中脱引而出。

请求方法

最常用的就是GET和POST方法

requests.get ()
requests.post ()
requests.put ()
requests.delete ()
requests.head ()
requests.options ()

示例get方法

import requests

r = requests.get('https://www.baidu.com')
print(r)
print(r.headers)                                # 返回响应头,字典格式
print(r.apparent_encoding)                      # 编码方式
print(r.content)                                # 返回响应的内容,以字节为单位
print(r.cookies)                                # 返回一个 CookieJar 对象,包含了从服务器发回的 cookie
print(r.elapsed)                                # 返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。
print(r.history)                                # 返回包含请求历史的响应对象列表(url)
print(r.is_permanent_redirect)                  # 如果响应是永久重定向的 url,则返回 True,否则返回 False
print(r.is_redirect)                            # 如果响应被重定向,则返回 True,否则返回 False
print(r.iter_content())                         # 迭代响应
print(r.iter_lines())                           # 迭代响应的行
#print(r.json())                                 # 返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,即需要请求json对象,否则会引发错误)
print(r.links)                                  # 返回响应的解析头链接,字典
print(r.next)                                   # 返回重定向链中下一个请求的 PreparedRequest 对象
print(r.ok)                                     # 检查 "status_code" 的值,如果小于400,则返回 True,如果不小于 400,则返回 False
print(r.raise_for_status())                     # 如果发生错误,方法返回一个 HTTPError 对象
print(r.reason)                                 # 响应状态的描述,比如 "Not Found" 或 "OK"
print(r.request)                                # 返回请求此响应的请求对象
print(r.status_code)                            # 返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found)
print(r.text)                                   # 返回响应的内容,unicode 类型数据
print(r.url)                                    # 返回响应的 URL
r.close()                                       # 关闭与服务器的连接

get方法访问百度的输出

print(r)
<Response [200]>

print(r.headers)                                # 返回响应头,字典格式
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Fri, 06 Jan 2023 08:54:55 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:24:45 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}

print(r.apparent_encoding)                      # 编码方式
utf-8

print(r.content)                                # 返回响应的内容,以字节为单位
b'\r\n \xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93  
\r\n'
print(r.cookies) # 返回一个 CookieJar 对象,包含了从服务器发回的 cookie <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]> print(r.elapsed) # 返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。 0:00:00.318688 print(r.history) # 返回包含请求历史的响应对象列表(url) [] print(r.is_permanent_redirect) # 如果响应是永久重定向的 url,则返回 True,否则返回 False False print(r.is_redirect) # 如果响应被重定向,则返回 True,否则返回 False False print(r.iter_content()) # 迭代响应 <generator object iter_slices at 0x00000239DB9F2CF0> print(r.iter_lines()) # 迭代响应的行 <generator object Response.iter_lines at 0x00000239DB9F2CF0> #print(r.json()) # 返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误) #此处报错 print(r.links) # 返回响应的解析头链接,字典 {} print(r.next) # 返回重定向链中下一个请求的 PreparedRequest 对象 None print(r.ok) # 检查 "status_code" 的值,如果小于400,则返回 True,如果不小于 400,则返回 False True print(r.raise_for_status()) # 如果发生错误,方法返回一个 HTTPError 对象 None print(r.reason) # 响应状态的描述,比如 "Not Found" 或 "OK" OK print(r.request) # 返回请求此响应的请求对象 <PreparedRequest [GET]> print(r.status_code) # 返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found) 200 print(r.text) # 返回响应的内容,unicode 类型数据 <!DOCTYPE html> <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css><title>ç™¾åº¦ä¸€ä¸‹ï¼Œä½ å°±çŸ¥é“</title></head> <body link=#0000cc>

你可能感兴趣的:(python,python,开发语言)