goodby 2020-04-20
格式:get(url, params=None, **kwargs)
import requests url = ‘https://www.baidu.com/s‘ params = { ‘Wd‘:‘%E6%B5%8B%E8%AF%95‘, ‘prefixsug‘:‘ceshi‘, } header = { ‘User-Agent‘:‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36‘, } cookie = { } data = requests.get(url=url,headers=header,params=params,cookies=cookie) print(data.content.decode(‘utf8‘))
assert data.json()[‘status‘]==False
格式:post(url,data,json,…)
import requests,json url = ‘https://www.lagou.com/jobs/positionAjax.json‘ params = { ‘needAddtionalResult‘:‘false‘ } header = { ‘User-Agent‘:‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36‘, ‘Content-Type‘:‘application/x-www-form-urlencoded; charset=UTF-8‘ } body = { ‘first‘:‘true‘, ‘pn‘:‘1‘, ‘kd‘:‘软件测试工程师‘, } # requests 操作 # timeout超时时间2秒 verify 安全证书True要有安全证书,根据浏览器要求 indent 内容做序列化 value = requests.post(url=url,headers=header,params=params,data = body,timeout=2.00,verify=True,indent=True) print(value.json()) data = value.json() filename = ‘filename‘ x = json.dump(data,open(filename,‘w‘),ensure_ascii=False,indent=True) y = json.load(open(filename,‘r‘)) print(y)
请求超时 Requests.get中的timeout参数
Verify属性设置为False,安全证书免验证。 req= requests.get(url, verify=False)
内容做序列化 indent=True
# requests 操作 # timeout超时时间2秒 verify 安全证书True要有安全证书,根据浏览器要求 indent 内容做序列化 value = requests.get(url=url,headers=header,params=params,data = body,timeout=2.00,verify=True,indent=True)
声明cookie容器对象:
向容器中传递生成cookies:
第一步
第二步
第三步
第四步
1.从响应中提取token值。
2.token值的使用方式。
import requests key = requests.Session() file = key.get(‘http://www.baidu.com‘) print(file.cookies)
安装
pip3 install requests-html
导入
from requests_html import HTMLSession
Requests-html
使用
from requests_html import HTMLSession
req = HTMLSession()
params = {‘query‘:‘testing‘}
w=r.get("http://www.sogou.com/web",params=params)
1、基本身份认证
HTTP Basic Auth是HTTP1.0提出的认证方式
客户端对于每一个realm,通过提供用户名和密码来进行认证的方式
当认证失败时,服务器收到客户端请求,返回401 UNAUTHORIZED,同时在HTTP响应头的WWW-Authenticate域说明认证方式及认证域身份认证的类型
import requests from requests.auth import HTTPBasicAuth url = ‘192.613.001.002‘ # 通过auth输入用户名和用户密码,来通过系统的验证 r = requests.get(url=url,auth=HTTPBasicAuth(‘user‘,‘password‘)) print(r.content)
2、netrc 认证
如果认证方法没有收到 auth 参数,Requests 将试图从用户的 netrc 文件中获取 URL 的 hostname 需要的认证身份
3、摘要式身份认证
digest authentication:在HTTP 1.1提出,目的是替代http 1.0提出的基本认证方式
1、requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies。
2、requests库的session对象还能为我们提供请求方法的缺省数据,通过设置session对象的属性来实现。
import requests key = requests.Session() file = key.get(‘http://www.baidu.com‘) print(file.cookies)