Python人才要具备哪些技能?requests库有哪些技巧?Python入门简单、精通不易,因此很多人选择专业系统的学习。根据各大招聘网站反馈的信息显示,理论基础与实战经验兼备的Python人才不仅就业速度快、就业薪资更高。接下来小编就给大家分享一下requests库相关知识及使用技巧。


学Python要具备什么技能 requests库有哪些技巧_第1张图片



requests是Python实现的简单易用的HTTP库,使用起来比urllib简洁很多。因为是第三方库,所以我们在使用前requests需要cmd安装,输入pip install requests命令,安装完成后import一下,正常则说明可以开始使用。

requests库基本方法介绍:

requests.request():构造一个请求,支撑一下各方法的基础方法;

requests.get():获取HTML网页的主要方法,对应于HTTP的GET;

requests.head():获取HTML网页头信息的方法,对应于HTTP的HEAD;

requests.post():向HTML网页提交POST请求的方法,对应于HTTP的POST;

requests.put():向HTML网页提交PUT请求的方法,对应于HTTP的PUT;

requests.patch():向HTML网页提交局部修改请求,对应于HTTP的PATCH;

requests.delete():向HTML页面提交删除请求,对应于HTTP的DELETE;

r.states_code:获取返回的状态码;

r.text / r.read():HTTP响应内容文本形式返回;

r.content:HTTP响应内容的二进制形式;

r.json():HTTP响应内容的json形式;

r.raw:HTTP响应内容的原始形式;

r.encoding:返回请求的url;

r.encoding:从HTTP header中猜测的响应内容编码方式;

r.apparent_encoding:从内容中分析出的响应内容编码方式(备选编码方式);r.apparent_encoding:从内容中分析出的响应内容编码方式(备选编码方式)。

requests.get( )方法

"""

r = requests.get(url,params=None,**kwargs)

~url :模拟获取页面的url连接

~params :url 中的额外参数,字典或字节流格式,无需对其编码

~**kwargs :12个控制访问的参数

"""

import requests

data = {

"age":"22",

"name":"germey",

}

response = requests.get("http://httpbin.org/get",params=data) #给URL传参

print(response.text)

'''Requests 会推测其编码然后解码,但是 HTTP 和 XML 自身可以指定编码,这样的话,应该使用 r.content 获取二进制的内容,然后设置 r.encoding='utf8' 为相应的解码。

'''

定制请求头

传递一个dict给headers参数就可以,Requests不会基于定制header的具体情况改变自己的行为。只不过在最后的请求中,所有的header信息都会被传递进去。

import requests

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',

}

response = requests.get("https://www.zhihu.com/expiore",headers=headers)

print(response.text)

注意: 定制 header 的优先级低于某些特定的信息源,例如:

如果在.netrc中设置了用户认证信息,使用headers=设置的授权就不会生效。而如果设置了auth=参数,.netrc的设置就无效了。

如果被重定向到别的主机,授权 header 就会被删除。

代理授权header会被URL提供的代理身份覆盖掉。

在我们能判断内容长度的情况下,header的Content-Length会被改写。

代理设置

设置proxies参数来配置代理,同时也可以设置代理密码认证,还可以使用SOCKS代理。

import requests

proxies= {

"http":"http://127.0.0.1:9999", (代理地址,端口)

"https":"http://127.0.0.1:8888"

}

response = requests.get("https://www.baidu.com",proxies=proxies)

print(response.text)

'''

proxies = {"http": "http://user:pass@10.10.1.10:3128/",}

proxies = {

'http': 'socks5://user:pass@host:port',

'https': 'socks5://user:pass@host:port'

}

'''

只要大家真正掌握了Python技术,胜任以上岗位就不是难题。如果你想快速学习Python技术,那就赶快加入到专业的学习吧。