python get
Posted 星空6
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python get相关的知识,希望对你有一定的参考价值。
参考:https://www.cnblogs.com/du-hong/category/1413482.html
requsts.它是一个Python第三方库,处理URL资源特别方便。参考:https://requests.readthedocs.io/zh_CN/latest/user/quickstart.html
一、环境安装
安装requests
pip install requests
二、get请求
1.导入requests后,用get方法就能直接访问url地址,如:https://www.cnblogs.com/canglongdao/,
2.这里的r也就是response,请求后的返回值,可以调用response里的status_code方法查看状态码;
3.状态码200只能说明这个接口访问的服务器地址时对的,并不能说明功能OK,一般要查看响应的内容,r.text是返回文本信息
# coding:utf-8
import requests
r=requests.get("https://www.cnblogs.com/canglongdao/")
print(type(r))
print(r.status_code)
print(r.text)
#不带参数
# coding:utf-8
import requests
r=requests.get("https://www.sogou.com/")
#print(dir(r)) #查看r属性列表
print(r.status_code) #状态200代表服务器地址正确,不代表功能ok
print(r.text)
#r.status_code #返回响应状态码
#r.content #字节方式的响应体,会自动解码gzip和deflate压缩
#r.headers #返回响应头,字典格式
#r.text #返回响应内容,字符串方式的响应体,会自动根据响应头部的字符编码进行解码
#r.cookies #返回cookie内容
#r.json() #requests自带json解码器
#r.raw #返回原始响应体
#r.encoding #编码格式
#r.raise_for_status() #非200响应抛出异常
#r.url #获取url
三、params
1.再发送一个带参数的get请求,如在博客园搜索canglongdao,url地址为:https://zzk.cnblogs.com/s/blogpost?w=canglongdao
2.请求参数:w=canglongdao,可以以字典的形式传参:{"w":"canglongdao"}
3.多个参数格式{"key1":"value1","key2":"value2","key3":"value3"}
四、content
1.博客园查找如果用r.text会发现获取的内容报错,因为博客园查找响应内容是gzip压缩的(非text文本)
2.如果在fiddler工具乱码,是可以点击后解码的,在代码里面可以用r.content这个方法,content会自动解码gzip和deflate压缩。
五、response
1.response的返回内容还有其它更多信息
--r.status_code #响应状态码
--r.content #字节方式的响应体,会自动为你解码gzip和deflate压缩
--r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
--r.json() #Requests中内置的JSON解码器
--r.url #获取url
--r.encoding #编码格式
--r.cookies #获取cookie
--r.raw #返回原始响应体
--r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
--r.raise_for_status() #失败请求(非200响应)抛出异常
常用框架
#encoding=utf-8
import requests
def xixi(url):
try:
a=requests.get(url)
a.raise_for_status()
a.recoding=a.apparent_encoding
a.encoding=\'utf-8\'
return a.text
except:
return \'未知错误\'
if __name__=="__main__":
a="http://www.sougou.com"
print(xixi(a))
以上是关于python get的主要内容,如果未能解决你的问题,请参考以下文章
ngx-translate实现国际化:this.translate.use()this.translate.get()this.translate.instant()onLangChange(代码片段