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的更多相关文章

  1. https学习笔记三----OpenSSL生成root CA及签发证书

    在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root C ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  4. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  5. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  6. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  7. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  8. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  9. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

随机推荐

  1. lua中的坑

    在工作中使用lua也有一年了,代码也写了不少,踩过不少坑,这里记录一下. table.sort table.sort是lua自带的排序函数,数据量小时,也还是不错的.不过要注意你传入的compare函 ...

  2. IOS-UITableView开发常用各种方法总结

    实现列表有两种方式 方式一 继承UIViewController,实现UITableViewDataSource和UITableViewDelegate协议.声明UITableView. UserIn ...

  3. 路径问题以及cookie详解

    1.路径问题: 注意 .代表执行程序的文件夹路径,在tomcat中也就是bin目录,所以要用this.getServletContext().getRealPath("/WEB-INF/cl ...

  4. 飞行模式下不让打开FM

     android 判断手机当前是否是飞行模式,在AirplaneModeEnabler中 提供了isAirplaneModeOn方法来判断当前是否是Airplane mode:public stati ...

  5. Droppable(放置)组件

    .加载方式 //class 加载方式 <div id="dd" class="easyui-droppable" data-options="a ...

  6. Image控件的简单使用示例1

    Image控件加载图片包括加载动态图片,加载静态图片两种方式.一.加载动态图片通过生成一个BitmapImage,创建该对象后,赋给Image的Source即可.加载的形式: 示例1 BitmapIm ...

  7. Visual Studio 2015 RC Downloads

    https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs

  8. Highcharts使用=====通过指定日期显示曲线

    1.说明: 利用HighStock显示曲线,在右上角的日期间隔选择好日期后,重新请求后台数据,重新加载曲线. 2.实现方法: 在HighStock的rangeSelector中有一个属性inputDa ...

  9. java 判断对象是否是某个类的类型方法

    class Do1 { public static void main(String[] args) { AA a=new CC(); if(a instanceof CC) { CC b=(CC)a ...

  10. Linux编程遇到的问题汇集(持续更新中)

    1.源代码编译redis报告错误: undefined reference to `__sync_add_and_fetch_4' 最近项目组在实验Redis,源代码编译的时候,遇到了错误:undef ...