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. CentOS启动MySQL服务失败

    :: mysqld_safe Starting mysqld daemon with databases from /data/mysql :: [Warning] Can't create test ...

  2. jqTransform——学习(1)

    官网:http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/ 转载:http://www.helloweba.com/view- ...

  3. 我的SD卡乱码解决方案

    转载请注明出处.chendesheng1988是原作者. 问题描述:射频模块读取证件信息后,串口读取的信息存到SD卡,存进去发现汉字是乱码. 解决方案:使用函数WideCharToMultiByte搞 ...

  4. Servlet问题:servlet cannot be resolved to a type解决办法

    工程里的路径权限高,并且eclipse并到classpath里寻找jar位置,所以我就到我的java项目里 项目名-->右键 Property-->选择 Java Build Path-- ...

  5. 魔方公式xyz

    x:(整个魔方以R的方向转动),x':(整个魔方以R'的方向转动)  y:(整个魔方以U的方向转动),y':(整个魔方以U'的方向转动)  z:(整个魔方以F的方向转动),z':(整个魔方以F'的方向 ...

  6. Linux输出重定向

  7. Codeforces Round #256 (Div. 2/B)/Codeforces448B_Suffix Structures(字符串处理)

    解题报告 四种情况相应以下四组数据. 给两字符串,推断第一个字符串是怎么变到第二个字符串. automaton 去掉随意字符后成功转换 array 改变随意两字符后成功转换 再者是两个都有和两个都没有 ...

  8. 一个C++基于boost简单实现的线程池

    xl_blocking_queue.h ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

  9. Oracle之事务

    一,oracle的事务: 是指对数据操作的一系列动作的统称.即:事务的任务便是使数据库从一种状态变换成为另一种状态,这不同于文件系统,它是数据库所特用的. 事务有四大特性(ACID): 1,原子性(a ...

  10. ADB命令与monkey

    adb devices查看已连接的设备 adb install package.apk adb shell monkey 1000 随机操作1000次当次操作可能会 adb无法使用,提示error: ...