python怎么实现leturl=newurl
发布网友
发布时间:2023-01-30 08:56
我来回答
共1个回答
热心网友
时间:2024-11-17 23:14
大数据
【python教程入门学习】用python制作url短链

梦魇java
原创
关注
0点赞·595人阅读
Hi,伙计们!今天这篇文章中我要向你展示我们如何利用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 和.py,然后产生下面这个list:
等等!那这个map()函数在这里做什么呢?大多数新手会感到困惑,是因为他们大多数从来没使用过map。map()是一个循环list的简单方式,把其中内容一个接一个传递给函数。上面的map()函数等价如下:
我希望上述代码已经解释清楚了关于map()函数的任何疑惑。
第四步:
现在让我们来包装我们的代码。剩下的唯一一件事就是:
把这个加到你代码的末尾。这会告诉我们什么时候脚本会被独立于shell执行,什么时候会被另一个脚本调用。如果你想在其他项目中使用这个脚本,这样做会非常方便。
最后,这是完整的代码:
如果你已经保存了这个脚本为url_shortener.py,你可以在shell中这样运行它:
如果你想保存这些tinyurls在txt文档里,就执行这行命令: