今天这篇文章中我要向你展示我们如何利用python来使复杂的url变得苗条。首先明确一下,我们并不是自己做一个url缩址服务,而是要利用tinyurl api(Tinyurl可以提供缩略网址服务)。
tinyurl没有发布过任何官方的的python api,所以我们从此开始:
第一步:
首先我们要进行一些调用。我们需要调用七个库来完成这项工作。
也许我们仅导入一个库就可以完成这项工作,但是为了做一个更好的url缩址,最好还是导入七个。
第二步:
现在我们开始用一种方法处理url缩址。请仔细看代码,代码很简单不言而喻。但我接下来还是会说明一下。
你理解了吗?我来给新手解释一下。首先我们定义了一个make_tiny函数,它可以把一个url作为输入。然后我们开始定义函数如何工作。url_code把一个url作为输入然后将其编码,也就是将其加密。然后我们将这个加密的url添加到tinyurl api的url尾部。我们打开request_url,使用urlopen函数。最后我们将返回值转化为utf-8,并阅读它。为什么要转化?因为urlopen函数返回的是比特流而不是字符串。所以为了打印或者修改,我们需要将其转换成字符串。很简单对吧?
下一步是从用户那里获取输入。我们使用sys库。
第三步:
让我们为我们的代码敲上main()函数。代码如下:
我们要做什么?我们在利用sys.argv来获取用户输入。我们没有限制自己只能输入一个url,而是想输入多少url就可以输入多少,然后可以把它们都缩短。sys.argv[1:]做的是除最开始两个参数(从0开始)外,将剩余的参数产生一个list。举个例子,如果你这样输入:
然后sys.argv[1:]会跳过python 和script.py,然后产生下面这个list:
等等!那这个map()函数在这里做什么呢?大多数新手会感到困惑,是因为他们大多数从来没使用过map。map()是一个循环list的简单方式,把其中内容一个接一个传递给函数。上面的map()函数等价如下:
我希望上述代码已经解释清楚了关于map()函数的任何疑惑。
第四步:
现在让我们来包装我们的代码。剩下的唯一一件事就是:
把这个加到你代码的末尾。这会告诉我们什么时候脚本会被独立于shell执行,什么时候会被另一个脚本调用。如果你想在其他项目中使用这个脚本,这样做会非常方便。
最后,这是完整的代码:
如果你已经保存了这个脚本为url_shortener.py,你可以在shell中这样运行它:
如果你想保存这些tinyurls在txt文档里,就执行这行命令:
我希望你能喜欢今天的推送。这个脚本在python2 和 python3中都可以运行。它主要针对两种人,第一种是学习python并希望制作一个简单却有用的脚本的人,还有那些希望学会如何在python中制作url网址缩略的人。到此为止关于url缩址的用法就讲解完啦,希望对你有所帮助。