python post 请求和get请求

19.4 get和post请求

一般HTTP请求提交数据,需要编码成URL编码格式,然后做为URL的一部分,或者作为参数传到Request对象中。

get请求一般用于向服务器获取数据
功能:批量获取网页贴吧数据

from urllib import request
 from urllib import parse 
 url = "https://www.baidu.com/s?" 
 wd = input("请输入你要搜索的关键字:") 
 params = { "wd":wd }ps = parse.urlencode(params) 
 print(ps)

在这里插入图片描述

from urllib import request
 from urllib import parse 
 headers = { "User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50" }
 url = "https://www.baidu.com/s?"
  wd = input("请输入你要搜索的关键字:") 
 params = { "wd":wd }
 #获取编码格式 
 ps = parse.urlencode(params) 
 print(ps) 
 url = url + ps print(url) 
 # rsp = request.urlopen(url)
  req = request.Request(url=url,headers=headers)
   resp = request.urlopen(req) 
   data = resp.read() 
   print(data) 
   with open("get.html","wb") as f:
   f.write(data)

post请求
Request请求对象里有data参数,这就是用在POST里的,我们要传送的数据就是这个参数data,data是一个字典,里面要有匹配键值对。

import urllib.request 
import urllib url = "https://fanyi.youdao.com/translate?"
 headers = { "User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50" }
 word = input("请输入你要翻译的单词:") 
 from_data ={ "i":word, "from":"AUTO", "to":"AUTO", "smartresult":"dict", "client":"fanyideskweb", "doctype":"json", "version":"2.1", "keyfrom":"fanyi.web", "action":"FY_BY_REALTlME", }
 data = urllib.parse.urlencode(from_data) 
 data = data.encode(encoding = "utf-8") 
 request = urllib.request.Request(url,data=data,headers=headers) 
 response = urllib.request.urlopen(request)
  html = response.read().decode(encoding="utf-8").strip()
   print(html)

GET方式是以直接以链接形式访问,链接中包含了所有参数,服务器端用Request.QueryString获取变量的值。如果包含了密码的话是一种不安全的选择,不过你可以直观地看到自己提交了什么内容。
POST则不会在网址上显示所有的参数,服务器端用Request.Form获取提交的数据,在Form提交的时候。但是HTML代码里如果不指定method属性,则默认为GET请求,Form中提交的数据将会附加在url之后,以?与url分开

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值