Bugscan学习笔记------关于urlparse
urlparse模块主要是把url拆分为6部分,并返回元组。并且可以把拆分后的部分再组成一个url。主要有函数有urljoin、urlsplit、urlunsplit、urlparse等。
************************************************************************
作为一名测试人员,我第一关注的是urljoin。urljoin主要是拼接URL,之前在做接口测试的时候,我并不知道还有这种模块,所以为了拼接接口,我是用的是这种笨办法:
for i in range(5031, 5040):
for j in range(9000, 99999):
url = 'http://****.com.clouddn.com/****/'+str(i)+'/'+str(j)
虽然行之有效,但是必须要纠结于单引号和加号的使用,稍有不注意,就会导致拼接出来的URL不可用,像上面这个拼接方式,如果在测试之前不去实验拼接出来的URL是否正确就直接去进行接口测试,循环那么多次结果都是在做无用功,那太令人心碎了。在学习Bugscan插件编写的过程中,我接触到了urlparse模块,瞬间发现了urljoin,它的形式比赤裸裸的字符串拼接好的多:
import urlparse
urlparse.urljoin('http://www.baidu.com/a','index.php')
urlparse.urljoin('http://www.baidu.com/a/','index.php')
但仍有缺憾,其实在使用urljoin的时候感觉形式上不错,但实际应用还是不是很好,像第一段代码的拼接,其实单用urljoin完全接不上去,还得使用过渡代码,因ulLjoin的机制是这个样子的:果基地址并非以字符/结尾的话,那么URL基地址最右边部分就会被这个相对路径所替换。如果希望在该路径中保留末端目录,应确保URL基地址以字符/结尾。那如此说来想实现我第一段代码的拼接还是需要借用一段字符串拼接的,感觉还需要二次开发,记录一下,等以后再去尝试,今天还是先了解urlparse模块。
******************************************************************************
urlparse模块还有urlsplit、urlunsplit、urlparse、urlunparse等主要函数,看名字就知道是俩对,互为逆操作。带un的是将元组组合成URL,不带的是将URL拆分成元组。
- urlparse将urlstring解析成6个部分,它从urlstring中取得URL,并返回元组 (scheme, netloc, path, parameters, query, fragment);
- urlsplit主要是分析urlstring,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段;
相应的,带un的分别是将拆分出来的元组组合成URL
--------python小学生
Bugscan学习笔记------关于urlparse的更多相关文章
- https学习笔记三----OpenSSL生成root CA及签发证书
在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root C ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
随机推荐
- 对Ul下的li标签执行点击事件——如何获取你所点击的标签
问题所来:做项目时,一般的数据都是用循环动态加载出来的,结构都是一样的,只是绑定的值不同,如何对相同的标签做处理的问题就来了. 例如:点谁就显示谁的数值 <ul > <li id=& ...
- 关于AppStore上传相关问题
1.电脑本地证书CertificateSigningRequest.certSigningRequest一定要一致(包括开发者证书,尤其是发布证书要一致,否则无法正常上传),此类错误Xcode一般会提 ...
- 【winform程序】自定义webrowser控件调用IE的版本
修改注册表: bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROW ...
- dialog中的button动态设置为disable[转]
我们再写dialog的时候,会时常有这样一种需求,希望通过某些条件将dialog的button设置为disable的. 基本的命令就是将“确定”这个button设置为disable(false). 如 ...
- 对C++默认构造函数的理解
在文章开始之前,首先指出对于c++新手的两个常见的误解: 一.任何class如果没有定义default constructor,就会被合成出一个来. 二.编译器合成出来的default constru ...
- (各个公司面试原题)在线做了一套CC++综合測试题,也来測一下你的水平吧(二)
刚才把最后的10道题又看了下.也发上来吧. 以下给出试题.和我对题目的一些理解 前10道题地址 (各个公司面试原题)在线做了一套CC++综合測试题.也来測一下你的水平吧(一) 11.设已经有A,B,C ...
- 一个安全测试的CheckList
转自:http://hi.baidu.com/dontcry/item/90c2bc466558c217886d1075 不登录系统,直接输入登录后的页面的URL是否可以访问: 不登录系统,直接输入下 ...
- repo简介
高通的Android JellyBean库已经建立完成,目前已经可以正常访问,可以正常提交.Repo获取代码注意:1. 首先应有一个repo脚本,并将脚本放到环境变量里,此脚本的配置方法a) 进入用户 ...
- [Polymer] Custom Elements: Styling
Code: <dom-module id="business-card"> <template> <div class="card" ...
- iOS 音频开发经验汇总
一.音乐播放类概念 iOS 下能支持歌曲和声音播放的的类有几个: SystemSound AVFoundtion库中的AVAudioPlayer #重要 MediMPMusicPlayerContro ...