🍀HPPT的几种请求方式
在HTTP1.1中总共定义了8种方法:
在HTTP1.0中,定义了三种请求方法:GET,POST和HEAD方法。
在HTTP1.1中,新增了五种请求方法:OPTINOS,PUT,DELETE,TRACE和CONNECT方法。
名称 | 说明 |
GET方法 | 发送一个请求来获取服务器上的某一些资源 |
POST方法 | 向URL指定的资源提交数据或附加新的数据 |
PUT方法 | 跟POST方法一样,可以向服务器提交数据,但是它们之间也所有不同,PUT指定了资源在服务器的位置,而POST没有哦 |
HEAD方法 | 指请求页面的部 |
DELETE方法 | 删除服务器上的某资源 |
OPTIONS方法 | 它用于获取当前URL所支持的方法,如果请求成功,在Allow的头包含类似GET,POST等的信息 |
TRACE方法 | 用于激发一个远程的,应用层的请求消息回路 |
CONNECT方法 | 把请求连接转换到TCP/TP通道 |
🍀两者之间的区别和联系
Get请求 | Post请求 |
Get请求通过URL进行传递 | Post通过Request body传递 |
Get请求只能进行url编码 | Post支持多种编码方式 |
Get请求在url中传送的参数有长度限制 | Post没有 |
Get产生一个TCP数据包 | Post产生两个数据包 |
Get请求浏览器会把http header和data一并发送出去,服务器响应200并返回数据 | Post请求浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200(返回数据) |
🍀Get实战—获取图片
步骤如下:
首先使用import导入requests库
将想要获取的地址保存到URL变量中
使用get请求URL
最后使用with open将获取的图片保存到2.png
import requests url = 'https://img.lashinbang.com/banner_6475b32c138d1.jpg' response = requests.get(url) with open('../images/2.png', 'wb') as f: f.write(response.content)
运行后
左侧的images文件夹可以看到保存的图片
🍀实现图片下载exe文件
经过实践了get请求获取图片,下面做一个小案例
实现步骤如下:
下载Pyinstaller库,用来打包py文件为exe文件
pip install Pyinstaller
在终端运行成功后如图所示
若已经下载则显示
接下来实现具体的步骤,这里用到了三个库分别是,tkinter、requests、time
tkinter是图形化界面的库
requests上一节有提到过是发送请求接受响应的库
time是时间库
话不多说上代码
import tkinter as tk import requests import time # 创建主窗口 root = tk.Tk() root.wm_title("请输入一个图片URL") # 创建输入框 input_box = tk.Entry(root) # 显示输入框 input_box.pack() def on_button_click(): input_text = input_box.get() _headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } response = requests.get(input_text,headers=_headers) number = int(time.time()) if input_text.endswith('jpg'): print('此URL以jpg结尾') with open("D:/{0}.jpg".format(number), 'wb') as f: f.write(response.content) elif input_text.endswith('png'): print('此URL以png结尾') with open("D:/{0}.png".format(number), 'wb') as f: f.write(response.content) elif input_text.endswith('jpeg'): print('此URL以jpeg结尾') with open("D:/{0}.jpeg".format(number), 'wb') as f: f.write(response.content) elif input_text.endswith('bmp'): print('此URL以bmp结尾') with open("D:/{0}.bmp".format(number), 'wb') as f: f.write(response.content) else: print('暂未找到该格式') # 创建按钮 button = tk.Button(root, text="提交", command=on_button_click) # 显示按钮 button.pack() # 进入消息循环 root.mainloop()
现如今代码较粗糙,经过后续的学习会不断改进!
最后一步就是打包成exe文件,这里我们找到py文件的所在目录,按住shift再右键进入Powershell
之后输入
pyinstaller -F -i 图标名称.ico 文件名称.py
运行成功后会在当前文件夹下生成如下文件,双击dist文件夹
会发现里面有一个exe文件,这就是我们想要的结果了
🍀Post实战—百度翻译
post实战我们通过百度翻译进行演示,首先要明确数据的所在
接下来我们将数据取出来即可,注意这里的头部需要添加Cookie
import requests url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', 'Cookie': 'BIDUPSID=A358192E5B1BE4BCE572B62DE0E229CB; PSTM=1672043772; BAIDUID=F121D7B022ADBC587D932E7FC90A8E68:FG=1; __yjs_duid=1_20c7c6132fcb0c13d38cd3ea979099c71672102504301; APPGUIDE_10_0_2=1; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDUSS=loSEtaRjZBbkRTSkxjODRoWThCNlNHcklyajZ6bG1vRkhGeGI4Z1p4MkxwYVprRVFBQUFBJCQAAAAAAAAAAAEAAADluy2CwvjNt7G-wvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIsYf2SLGH9kWF; BDUSS_BFESS=loSEtaRjZBbkRTSkxjODRoWThCNlNHcklyajZ6bG1vRkhGeGI4Z1p4MkxwYVprRVFBQUFBJCQAAAAAAAAAAAEAAADluy2CwvjNt7G-wvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIsYf2SLGH9kWF; APPGUIDE_10_6_2=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; MCITY=-184%3A; H_PS_PSSID=36545_38882_38959_38956_38792_38843_38831_38915_38807_38839_38635_38848_26350; BDSFRCVID=FxDOJeC62ZAYIcbf9ihcjNK1U26H3ITTH6aouo2rOtPcNaxu0uzyEG0PXU8g0Kub-FL1ogKKQmOTHACF_2uxOjjg8UtVJeC6EG0Ptf8g0f5; H_BDCLCKID_SF=JnItoI_htK03q5rcbJQEbCCShGRmBbQ9WDTm_D_XLRjEMPoIetrsKPINyNQPXPbeK6-t-pPKKR7ZDlOo-xbGQtD4MbrP3tv33mkjbnrGfn02OP5E3J0BXt4syPRI2xRnWg6mKfA-b4ncjRcTehoM3xI8LNj405OTbIFO0KJDJCFKMDtwjTt5DTPQ-gTHK4JtbD62BnT8K6rjDnCrQR7UXUI8LNDHXfokWC7a0DTV2nO88lkl3jK-y5tP3bO7ttoybC8HQq72LnOFHtnGDbo02fL1Db3vL6vMtg3t3j6IBIjoepvo0tcc3MkFLPjdJJQOBKQB0KnGbUQkeq8CQft20b0EeMtjKjLEK5r2SC-XfIDM3f; BAIDUID_BFESS=F121D7B022ADBC587D932E7FC90A8E68:FG=1; BDSFRCVID_BFESS=FxDOJeC62ZAYIcbf9ihcjNK1U26H3ITTH6aouo2rOtPcNaxu0uzyEG0PXU8g0Kub-FL1ogKKQmOTHACF_2uxOjjg8UtVJeC6EG0Ptf8g0f5; H_BDCLCKID_SF_BFESS=JnItoI_htK03q5rcbJQEbCCShGRmBbQ9WDTm_D_XLRjEMPoIetrsKPINyNQPXPbeK6-t-pPKKR7ZDlOo-xbGQtD4MbrP3tv33mkjbnrGfn02OP5E3J0BXt4syPRI2xRnWg6mKfA-b4ncjRcTehoM3xI8LNj405OTbIFO0KJDJCFKMDtwjTt5DTPQ-gTHK4JtbD62BnT8K6rjDnCrQR7UXUI8LNDHXfokWC7a0DTV2nO88lkl3jK-y5tP3bO7ttoybC8HQq72LnOFHtnGDbo02fL1Db3vL6vMtg3t3j6IBIjoepvo0tcc3MkFLPjdJJQOBKQB0KnGbUQkeq8CQft20b0EeMtjKjLEK5r2SC-XfIDM3f; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1686485417,1686558013,1687588455,1687864931; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1687865147; ab_sr=1.0.1_Mjk2ZTdjZDlmYWE2NjMzMGUxOGMzOTUxNWUxNDg2MTk0ZjI1ZTE2NjIzZjAyNWFlMmRhYzE4Njk0NDBiNGI3MDk4ZTFkOGYzOGIwNDQ5MTg0ZWJmNDk5ZDBmOTFiYjc1NTZlODFlY2M3ODBlYmY2NzFlMjFkYjgxY2UzYmQ2N2QyNDE3M2NlNjAzNzQzNzFlODljMGZlY2Q3MGY4MjEyMzVhYjZiYzFhMTRiYjEzMThkNmJmMzc0NzRkMDEzZTVl' } data = { 'from': 'zh', 'to': 'en', 'query': '馒头', 'transtype': 'translang', 'simple_means_flag': '3', 'sign': '477215.240430', 'token': 'c73b1a26e831716055c6be09583041e1', 'domain': 'common' } rest = requests.post(url, headers=headers, data=data) trans_dict = rest.json() print(trans_dict['trans_result']['data'][0]['dst']) print(trans_dict['trans_result']['baike'][0]['abstractPlain'])
运行结果如图
挑战与创造都是很痛苦的,但是很充实。