python requests 基础资料

python requests 基础资料

import requests
response = requests.get('http://www.baidu.com')
response.encoding='utf-8'
print('状态码:',response.status_code)  # 打印状态码
print('url:', response.url)          # 打印请求url
print('header:',response.headers)      # 打印头信息
print('cookie:',response.cookies)      # 打印cookie信息
print('源码:',response.text)  #以文本形式打印网页源码
print('字节流形式打印:',response.content) #以字节流形式打印
---------------------------------------------------------------
带参数的GET请求:
第一种直接将参数放在url内
import requests
response = requests.get(http://httpbin.org/get?name=psl&age=21)
print(response.text)

运行结果:
{
  "args": {
    "age": "21", 
    "name": "psl"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.4"
  }, 
  "origin": "59.51.114.216, 59.51.114.216", 
  "url": "https://httpbin.org/get?name=psl&age=21"
}

第二种
import requests

data = {
    'name': 'psl',
    'age': 21
}

response = requests.get('http://httpbin.org/get', params=data)
print(response.text)

----------------------------------------------------------------------------
#为你的请求添加头信息
import requests
heads = {}
heads['User-Agent'] = 'Mozilla/5.0 ' \
                          '(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \
                          '(KHTML, like Gecko) Version/5.1 Safari/534.50'
response = requests.get('http://httpbin.org/get',headers=heads)
print(response.text)

运行结果:
{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"
  }, 
  "origin": "59.51.114.203, 59.51.114.203", 
  "url": "https://httpbin.org/get"
}
——————————————————————————————————————————
#获取cookie
import requests

response = requests.get('http://www.baidu.com')
print(response.cookies)
print(type(response.cookies))
for k,v in response.cookies.items():
    print(k+':'+v)
——————————————————————————————————————————————
#使用代理
import requests
proxies= {
"http":"115.218.218.231:9000", 
"http":"58.48.168.166:51430"
}
response = requests.get('http://httpbin.org/get',proxies=proxies)
print(response.text)

运行结果:{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.4"
  }, 
  "origin": "58.48.168.166, 58.48.168.166", 
  "url": "https://httpbin.org/get"
}
——————————————————————————————————————————————————
异常处理

在你不确定会发生什么错误时,尽量使用try...except来捕获异常

所有的requests exception:
import requests
from requests.exceptions import ReadTimeout,HTTPError,RequestException

try:
    response = requests.get('http://www.baidu.com',timeout=0.5)
    print(response.status_code)
except ReadTimeout:
    print('timeout')
except HTTPError:
    print('httperror')
except RequestException:
    print('reqerror')

pip install requests 安装

Requests 的七个主要方法                        与 HTTP 对应方法
requests.request():    构造一个请求 支撑以下各方法的基础方法
requests.get():        获取HTML网页的主要方法                 GET
requests.head():    获取HTML网页头信息的方法            HEAD
requests.post():    向HTML网页提交post请求的方法            POST
requests.put():    向HTML网页提交put请求的方法            PUT
requests.patch():    向HTML网页提交局部修改请求的方法        PATCH
requests.delete():    向HTML网页提交删除请求的方法            DELETE

requests 库支持六种常见的连接异常
requests.ConnectionError    网络连接错误异常,如 DNS 查询失败、拒绝连接等
requests.HTTPError            HTTP 错误异常
requests.URLRequired            URL 缺失异常
requests.TooManyRedirects     超过最大重定向次数,产生重定向异常
requests.ConnectTimeout            连接远程服务器超时异常
requests.Timeout             请求 URL 超时,产生超时异常

**kwargs: 13个控制访问的参数
params:    字典或字节序列,作为参数增加到 url 中
data:         字典、字节序列或文件对象,作为 Request 的内容
timeout:    设定超时时间,秒为单位 如果设定时间内未返回,将产生一个 TimeoutError 异常
json:        JSON 格式的数据,作为 Request 的内容
proxies:     字典类型,设定访问代理服务器,可以增加登录认证
header:     字典,可以用其来控制访问链接的 HTTP 头
allow_redirects: 重定向开关,True/False,默认为True
cookies:    字典或 CookieJar,Request 中的 cookie
stream:        获取内容立即下载开关,默认为True
auth:        元组,支持 HTTP 认证功能
verify:        认证 SSL 证书开关,默认为True
files:        字典类型,向服务器传输文件时使用的字段
cert:        保存本地 SSL 证书路径的字段

1.request() 方法
request() 方法是所有方法的基础方法,其余的所有方法都是基于 request() 方法来封装的
格式:requests.request(method, url, **kwargs)

method : 请求方式,不同的方式对应不同的 HTTP 请求功能
url : 拟获取页面的url链接
**kwargs: 控制访问的参数,共13个

r=r.request(GET,"http://www.baidu.com") 与 r=r.get("http://www.baidu.com") 等价

2.get()方法
response = requests.get(url, params=None, **kwargs)
url : 拟获取页面的url链接? params : url中的额外参数,字典或字节流格式,可选
params参数是字典或字节序列,作为参数增加到url中

**kwargs: 12个控制访问的参数
response对象的属性

属性    
status_code    HTTP请求的返回状态
text        HTTP响应内容的字符串形式,即:url对应的页面内容
encoding    从HTTP header中猜测的响应内容编码方式
apparent_encoding    从内容中分析出的响应内容编码方式(备选编码方式)
content        HTTP响应内容的二进制形式

encoding和apparent_encoding的区别 
encoding:如果header中不存在charset,则认为编码为ISO-8859-1 
apparent_encoding:根据网页内容分析出的编码方式 
综上所述,apparent_encoding比encoding更为准确


3.head() 方法

1)作用:通过给定 url 来构造一个向 HTTP 请求资源的 Request 对象

2)返回值:返回一个包含 HTTP 资源的 Response 对象,其包含从 HTTP 返回的所有头部资源

3)格式:requests.head(url, **kwargs)

4.post() 方法

1)作用:向 url 提交新增数据,格式为字典,自动编码为 form(表单)

2)格式:requests.post(url, **kwargs)

5.put() 方法

1)作用:向 url 提交新增数据,格式为字符串,自动编码为 data

2)格式:requests.put(url,, **kwargs)

6.patch() 方法

1)作用:向 url 提交局部修改请求

2)格式:requests.patch(url,, **kwargs)

7.delete() 方法

1)作用:向 url 提交删除请求

2)格式:requests.delete(url, **kwargs)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值