python的urllib库完成GET,POST请求

from urllib import parse,request
import json

# POST请求 当request中包含data参数的时候,是POST请求,反之是GET请求
textmod = {"username": "admin", "password": "admin", "rememberMe": True}
textmod = json.dumps(textmod).encode(encoding='utf-8')
header_dict = {'Accept': 'application/json', 'Content-Type': 'application/json'}
url = 'http://localhost:8080/api/authenticate'
req = request.Request(url=url, data=textmod, headers=header_dict)
res = request.urlopen(req)
res = res.read()# 默认获取到的是16进制'bytes'类型数据 Unicode编码
res = res.decode(encoding='utf-8') # 如果如需可读输出则需decode解码成对应编码




# GET GET请求没有data项,且请求url一般包含请求条件
textmod = {"query": "cluster.clusterNodeIp:"+ip}# key-query表示查询 value-表示查询条件
textmod = parse.urlencode(textmod) # 把查询条件转成url中的加密形式
print(textmod)# GET请求是添加在url中发出的,POST是夹在请求体内发出的
header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
               'Authorization': 'Bearer '+token}
# 前一部分为URL + '?' + 请求条件
url = 'http://localhost:8080/api/_search/analysis-tasks' + '?' + textmod
print(url)
req = request.Request(url=url, headers=header_dict) # GET无data项
res = request.urlopen(req)
res = str(res.read(), encoding='utf-8') # 将返回的bytes类型转为str类型
data = json.loads(res) # 如果是json/dict类型,这一步可以转为dict类型,前提是从str转
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在爬虫的区别和使用建议是什么? 回答: Python有两个常用于爬虫的,分别是urllibrequests。在Python 2urlliburllib2同时存在,分别负责不同的功能,有些功能需要从urllib导入。而在Python 3urllib已经整合了urllib2的功能,只保留了urllib一个标准,并且在功能和易用性上进行了改进。另外,还有一个值得注意的是,虽然urllib在人性化方面和requests存在差距,但urllibPython标准,自带安装,无需额外安装。而requests需要单独安装,但它更为便捷,可以直接构造get、post请求并发起,相比之下urllib.request只能先构造请求,再发起。因此,对于爬虫任务,建议使用requests,它更易用且功能更丰富。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python urllib, urllib2, urllib3 以及 requests 的区别 (附个人一些看法)](https://blog.csdn.net/Likianta/article/details/126705631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [浅谈Python两大爬虫——urllibrequests区别](https://blog.csdn.net/pdcfighting/article/details/117049893)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值