首页 > 其他分享 >requests库的使用

requests库的使用

时间:2023-02-10 00:11:40浏览次数:54  
标签:www httpbin get 使用 print org requests

requests库的使用

概述

requests库用于网页请求并接收返回信息,requets库的功能有:

  • 常用请求
    • 请求方式
      • GET请求
      • POST请求
    • 请求携带的信息
      • 请求头headers
      • 设置cookies
      • Session维持
      • SSL证书验证
      • 超时设置
      • 身份验证
      • 代理设置
  • 常见响应
    • requests库中字符串形式的json格式转换为字典或者列表形式的json格式
    • 抓取二进制数据
    • 基本响应信息

  • GET请求

基本使用方法:

import requests

r = requests.get('https://www.httpbin.org/get')#r为请求服务器后,服务器返回的内容对象
print(type(r))
print(r.text)#得到返回对象中html的内容
#运行结果:
# <class 'requests.models.Response'>
# {
#   "args": {}, 
#   "headers": {
#     "Accept": "*/*", 
#     "Accept-Encoding": "gzip, deflate, br", 
#     "Host": "www.httpbin.org", 
#     "User-Agent": "python-requests/2.28.1", 
#     "X-Amzn-Trace-Id": "Root=1-63e4fb5d-44b2e3f35eff732c0c58a580"
#   }, 
#   "origin": "113.242.112.214", 
#   "url": "https://www.httpbin.org/get"
# }

添加请求参数

用GET附加额外的信息
https://www.httpbin.org/get?name=germey&age=25
额外提供的参数:?name=germey&age=25可以不用表示在URL中

import requests

data = {
    'name':'germey',
    'age':25
}
r = requests.get('https://www.httpbin.org/get',params=data)
print(r.text)
#运行结果:
# {
#   "args": {
#     "age": "25", 
#     "name": "germey"
#   }, 
#   "headers": {
#     "Accept": "*/*", 
#     "Accept-Encoding": "gzip, deflate, br", 
#     "Host": "www.httpbin.org", 
#     "User-Agent": "python-requests/2.28.1", 
#     "X-Amzn-Trace-Id": "Root=1-63e4fd0a-733704a41b2421896b83e355"
#   }, 
#   "origin": "113.242.112.214", 
#   "url": "https://www.httpbin.org/get?name=germey&age=25"
# }

requests中习惯于将URL中定义的?query;parameters定义为params参数(URL构成)

  • requests库中字符串形式的json格式转换为字典或者列表形式的json格式

import requests

r = requests.get('https://www.httpbin.org/get')
print(type(r.text))
print(r.json())#此处不用写为r.text.json()直接用requests中的json()方法
print(type(r.json()))
#运行结果
# <class 'str'>
# {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Host': 'www.httpbin.org', 'User-Agent': 'python-requests/2.28.1', 'X-Amzn-Trace-Id': 'Root=1-63e5004b-770950fc3bd689b978e4bfce'}, 'origin': '113.242.112.214', 'url': 'https://www.httpbin.org/get'}
# <class 'dict'>

核心为将字符串转化为字典或者列表方便下一步信息操作

  • 抓取二进制数据

二进制数据:图片、音频、视频等由二进制码组成的文件

import requests

r = requests.get('https://scrape.center/favicon.ico')
print(r.text)#返回的是str类型的数据
print(r.content)#返回的是bytes类型的数据
print(r.text.encode())#可以将str类型转换为bytes类型的数据
print(r.content.decode())#可以将bytes类型的数据转换为str类型的数据

关于python编码问题详情见python字符编码问题处理
r.content的前面带一个b,代表是bytes类型的数据

  • 请求头headers

添加请求头信息,伪装成正常浏览器

import requests

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.12022 SLBChan/103'
}
r = requests.get('https://ssr1.scrape.center/',headers = headers)
print(r.text)
  • POST请求

import requests

data = {'name':'germey','age':'25'}
r = requests.post('https://www.httpbin.org/post',data=data)
print(r.text)
  • 基本响应信息

import requests

r = requests.get('https://ssr1.scrape.center/')
print(type(r.status_code),r.status_code)#状态码
print(type(r.headers),r.headers)#响应头
print(type(r.cookies),r.cookies)#得到cookies
print(type(r.url),r.url)#url
print(type(r.history),r.history)#请求历史

标签:www,httpbin,get,使用,print,org,requests
From: https://www.cnblogs.com/KeepEarlyHours/p/17107552.html

相关文章