Request

request

GET

参数名含义
params请求参数
header请求头
timeout超时时间
cookiescookie值
verify=Falsessl证书验证
auth身份认证
proxies代理

POST

参数名含义
data请求体
files请求文件
jason请求json

Response

参数名含义
r.content二进制内容
r.jsonjson数据
r.text文本内容
r.status_code状态码<class 'int'> 200
r.header头部<class 'requests.structures.CaseInsensitiveDict'> {'Server': 'nginx/1.17.8', 'Date': 'Sun, 01 Mar 2020 13:31:54 GMT', 'Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Accept-Encoding', 'X-Frame-Options': 'SAMEORIGIN', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains', 'Content-Encoding': 'gzip'}
r.cookiescookie值<class 'requests.cookies.RequestsCookieJar'> <RequestsCookieJar[]>
r.urlurl值<class 'str'> https://static1.scrape.center/
r.history历史值<class 'list'> []
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests

# 1.请求头header
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/52.0.2743.116 Safari/537.36 '
}
r = requests.get('https://static1.scrape.center/', headers=headers)
print(r.text)

# 2.请求参数params
data = {
    'name': 'lp',
    'age': 25
}
r = requests.get('http://httpbin.org/get', params=data)
print(r.text)

# 3.超时 timeout=(connect,read)
r = requests.get('https://httpbin.org/get', timeout=(5, 30))
print(r.status_code)

# 4.SSL 证书验证
# 方式一:设置忽略告警
from requests import urllib3
urllib3.disable_warnings()
# 方式二:补货告警
import logging
logging.captureWarnings(True)
response = requests.get('https://static2.scrape.center/', verify=False)
print(response.status_code)

# 5.身份认证
# 方式一:HTTPBasicAuth('admin', 'admin')
from requests.auth import HTTPBasicAuth

r = requests.get('https://static3.scrape.center/', auth=HTTPBasicAuth('admin', 'admin'))
print(r.status_code)
# 方式二:默认
r = requests.get('https://static3.scrape.center/', auth=('admin', 'admin'))
print(r.status_code)

# 方式三: OAuth 认证 pip3 install requests_oauthlib
from requests_oauthlib import OAuth1
url = 'https://api.twitter.com/1.1/account/verify_credentials.json'
auth = OAuth1('YOUR_APP_KEY', 'YOUR_APP_SECRET',
              'USER_OAUTH_TOKEN', 'USER_OAUTH_TOKEN_SECRET')
requests.get(url, auth=auth)

# 6.代理设置:proxies
# 6.1HTTP 代理
proxies = {
    'http': 'http://10.10.10.10:1080',
    'https': 'http://10.10.10.10:1080',
}
requests.get('https://httpbin.org/get', proxies=proxies)
# 6.2SOCKS 协议代理 pip3 install "requests[socks]"
proxies = {
    'http': 'socks5://user:password@host:port',
    'https': 'socks5://user:password@host:port'
}
requests.get('https://httpbin.org/get', proxies=proxies)

# 7.Cookies
headers = {
    'Cookie': '_octo=GH1.1.1849343058.1576602081; _ga=GA1.2.90460451.1576602111; '
              '__Host-user_session_same_site=nbDv62kHNjp4N5KyQNYZ208waeqsmNgxFnFC88rnV7gTYQw_; '
              '_device_id=a7ca73be0e8f1a81d1e2ebb5349f9075; '
              'user_session=nbDv62kHNjp4N5KyQNYZ208waeqsmNgxFnFC88rnV7gTYQw_; logged_in=yes; dotcom_user=Germey; '
              'tz=Asia%2FShanghai; has_recent_activity=1; _gat=1; _gh_sess=your_session_info',
    '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('https://github.com/', headers=headers)
print(r.text)

# 8.post请求
data = {'name': 'germey', 'age': '25'}
r = requests.post("http://httpbin.org/post", data=data)
print(r.text)

# 9.文件上传
files = {'file': open('favicon.ico', 'rb')}
r = requests.post('http://httpbin.org/post', files=files)
print(r.text)

# 10.Session 维持
s = requests.Session()
s.get('http://httpbin.org/cookies/set/number/123456789')
r = s.get('http://httpbin.org/cookies')
print(r.text)

# 11.Prepared Request
from requests import Request, Session
url = 'http://httpbin.org/post'
data = {'name': 'germey'}
headers = {'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 '
}
s = Session()
req = Request('POST', url, data=data, headers=headers)
prepped = s.prepare_request(req)
r = s.send(prepped)
print(r.text)

# response包含的属性
r.content #二进制
r.json
r.text
r.status_code
r.header
r.cookies
r.url
r.history
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值