python 分析http查询字符串 urlparse.parse_qs
来源:互联网 发布:痴迷网络辅导记录表 编辑:程序博客网 时间:2024/06/02 06:02
如何把get请求的参数转成字典 (Map)
urlparse.parse_qs(params)
/
/
str
需要转成字典的 请求参数
/
/
{
'phone'
: [
'075988888888'
],
'id'
: [
'10'
],
'name'
: [
'\xe4\xb8\xad\xe6\x96\x87'
]}
获取一个网站的get 请求需要的参数
result
=
urlparse.urlparse(url)
urlparse.parse_qs(result.query)
例如 百度搜索
urls
=
'https://www.baidu.com/s?wd=%E5%87%BB%E6%B2%89&rsv_spt=1&rsv_iqid=0xc24a2e7700020d3c&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=18&rsv_sug1=23&rsv_sug7=101&rsv_sug2=0&inputT=6850&rsv_sug4=7802'
result
=
urlparse.urlparse(urls)
结果是
result---> ParseResult(scheme='https', netloc='www.baidu.com', path='/s', params='', query='wd=%E5%87%BB%E6%B2%89&rsv_spt=1&rsv_iqid=0xc24a2e7700020d3c&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf- 8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=18&rsv_sug1=23&rsv_sug7=101&rsv_sug2=0&inputT=6850&rsv_sug4=7802', fragment='')
params
=
urlparse.parse_qs(result.query)<br><br>结果
params---> {'wd': ['\xe5\x87\xbb\xe6\xb2\x89'], 'rsv_spt': ['1'], 'rsv_iqid': ['0xc24a2e7700020d3c'], 'inputT': ['6850'], 'f': ['8'], 'rsv_enter': ['1'], 'rsv_bp': ['0'], 'rsv_idx': ['2'], 'tn': ['baiduhome_pg'], 'rsv_sug4': ['7802'], 'rsv_sug7': ['101'], 'rsv_sug1': ['23'], 'issp': ['1'], 'rsv_sug3': ['18'], 'rsv_sug2': ['0'], 'ie': ['utf-8']}
parse_qs 有几种实现
urlparse.parse_qs 返回字典urlparse.parse_qsl 返回列表这个模块在 python 3.0 中 改名为 urllib.parse
urllib.parse.parse_qs 返回字典urllib.parse.parse_qsl 返回列表
cgi中的这两个函数已经废弃了, 留在模块中 只是为了向后兼容, 推荐使用urlparse.parse_qs 和 urlparse.parse_qslcgi.parse_qscgi.parse_qsl
import urlparseqsdata = "test=test&test2=test2&test2=test3"qs = dict( (k, v if len(v)>1 else v[0] ) for k, v in urlparse.parse_qs(qsdata).iteritems() )print qs
如果给定你一个URL,比如: http://url/api?param=2¶m2=4 我们需要获取参数名和参数值的话,那可以用到python标准库urlparse
import urlparse
def qs(url):
query = urlparse.urlparse(url).query
return dict([(k,v[0]) for k,v in urlparse.parse_qs(query).items()])
print qs('http://url/api?param=2¶m2=4') 返回的结果:{'param':'2','param2':'4'}
注意,这个模块的parse_qs方法在2;5的版本是不存在的,只有2.5以上的才有,你需要调用该方法的时候可以先通过dir(urlparse)查看模块urlparse是否有相应的方法。
- python 分析http查询字符串 urlparse.parse_qs
- python 分析http查询字符串 urlparse.parse_qs
- Python之美[从菜鸟到高手]--urlparse源码分析
- python学习---urlparse模块
- Python urlparse总结
- python中的urlparse模块
- Python urlparse学习
- python urlparse详解
- Python——urlparse
- Python URLparse模块
- python的urlparse
- Python urlparse模块
- Python之urlparse模块
- python的urlparse
- python中使用urlparse
- Python学习——urlparse
- 关于python的urlparse.urljoin
- 【转】Python之美[从菜鸟到高手]--urlparse源码分析
- Java ArrayList 踩坑记录
- [设计模式]面向对象设计原则之里氏替换原则
- mips平台报错:报错信息:CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 802bc
- 谷歌浏览器出现黑屏、花屏、闪屏的问题解决方案
- zeit/micro connect with Mongo by Mongoose
- python 分析http查询字符串 urlparse.parse_qs
- JVM理解与总结
- 媒体查询的使用
- 第四周项目3(2)——单链表的应用
- 区块链开发教程搭建Hyperledger的虚拟币开发环境
- 第四周项目三(2) 两个链表的连接
- Spring Cloud Config配置文件加解密
- 产生不重复的随机数
- UML类图与类的关系详解