zoukankan      html  css  js  c++  java
  • Python相对完美的URL拼接函数

     

    首先说下什么叫URL拼接,我们有这么一个HTML片段:

    做为一只辛苦的爬虫,我们要跟踪到这个click me指向的页面,假设这个片段来自:http://www.xxxdu.com,那么目标页面是什么呢?

    显然不是

    而是

    第一个结果看着很脑残,但是这就是Python的urljoin给出的结果,按理说urljoin应该解决这个“路径非正规化”(Normalize path )的问题,但是它没有:

    OK,其实这个问题的解决根本不再URL上,因为URL已经拼接了,更准确的描述这个问题应该是路径的正规化,即xxx.com后面的这部分路径,如果我们把它想象成Unix路径,不就是求相对论路径”/../../a.html”的绝对路径么?

    我们可以用查找、正则表达式把后面这部分分离出来,更省事的方法是urlparse:

    上述结果的第2部分, arr[2]就是我们要的path啦。

    然后Python提供了Unix路径的正规化函数posixpath.normpath

    最后我们把正规化好的path重新组装成url,于是整个函数出炉:

    输出结果:

  • 相关阅读:
    如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面
    看不懂 ASP.NET 相册上传代码
    asp.net判断是1.1还是2.0主要由Code*属性来解决,判断规则如下:
    引号看不懂
    GridView的行删除事件 //取当前行的Id
    <Columns></Columns>中间的是列集合
    DropDownList1.SelectedIndex = 0 DropDownList1处于位选择任何选项的状态下
    是一个查询语句 查询ZhuanJia表里面id=输入id的数据
    验证码图片的解释
    get和post区别:
  • 原文地址:https://www.cnblogs.com/shijiaoyun/p/4863813.html
Copyright © 2011-2022 走看看