之前的学习都是把网上的例子搬过来,发现有的地方用urllib有的地方使用requests,一直都是迷迷糊糊的,开始还以为这两个是同一个的东西,后来才发现不是一样的,requests后面版本新加的包,整体来说requests对象的使用方法比urllib的使用方法要简单,下面就看一个具体的例子吧。
首先我们对urllis.request发送时翻译的例子进行一下改造会发现比那个的代码要精练了好多,核心内容只使用了两句代码就实现了,并且headers和data的信息可以直接通过参数传入。
#导入需要的包
import requests as req
import json as js
#要访问的网址
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
#头信息字典
headers = {}
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
#data信息字典
content = input('请输入要翻译的内容:')
data = {}
data['i'] = content
data['keyfrom'] = 'fanyi.web'
data['doctype'] = 'json'
#使用requests的post方法
response = req.post(url=url, data=data, headers=headers)
#直接进行json解析
tar = response.json()
#打印输出
print('翻译后的结果为:%s' %tar['translateResult'][0][0]['tgt'])
接下来requests对象还能实现文件上传
import requests
file1 = {'file': open('favicon.ico', 'rb')}
r = requests.post("http://httpbin.org/post", files=file1)
print(r.content.decode('utf-8'))
接下来就是requests对象的cookie的获取了,今天刚听说人人网原来的校内网被卖掉了,接下来就拿它做例子吧。
import requests
response = requests.get("http://www.renren.com/")
for key, value in response.cookies.items():
print(key + '=' + value)
通过上面的例子可以得出response对象直接就包含了cookie的信息。获取cookie也比urllib要简单了许多,我们也可以通过打印输出看一下response的cookie类型,如果打印的话可以看到它是RequestCookieJar的类型。