微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

这两者之间没有联系?有!利用QQ空间的链接诱骗目标点击,然后在QQ空间的访问列表查看就知道他是谁了!

进入正题:

Hi,伙计们!今天这篇文章中我要向你展示我们如何利用python来使复杂的url变得苗条。首先明确一下,我们并不是自己做一个url缩址服务,而是要利用tinyurl api(Tinyurl可以提供缩略网址服务)。tinyurl没有发布过任何官方的的python api,所以我们从此开始:

第一步

首先我们要进行一些调用。我们需要调用七个库来完成这项工作。

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

进群:548377875   即可获取大量的学习资料哦!

也许我们仅导入一个库就可以完成这项工作,但是为了做一个更好的url缩址,最好还是导入七个。

第二步

现在我们开始用一种方法处理url缩址。请仔细看代码代码很简单不言而喻。但我接下来还是会说明一下。

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

你理解了吗?我来给新手解释一下。首先我们定义了一个make_tiny函数,它可以把一个url作为输入。然后我们开始定义函数如何工作。url_code把一个url作为输入然后将其编码,也就是将其加密。然后我们将这个加密的url添加到tinyurl api的url尾部。我们打开request_url,使用urlopen函数。最后我们将返回值转化为utf-8,并阅读它。为什么要转化?因为urlopen函数返回的是比特流而不是字符串。所以为了打印或者修改,我们需要将其转换成字符串。很简单对吧?

下一步是从用户那里获取输入。我们使用sys库。

第三步

让我们为我们的代码敲上main()函数代码如下:

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

我们要做什么?我们在利用sys.argv来获取用户输入。我们没有限制自己只能输入一个url,而是想输入多少url就可以输入多少,然后可以把它们都缩短。sys.argv[1:]做的是除最开始两个参数(从0开始)外,将剩余的参数产生一个list。举个例子,如果你这样输入:

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

然后sys.argv[1:]会跳过python 和script.py,然后产生下面这个list:

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

等等!那这个map()函数在这里做什么呢?大多数新手会感到困惑,是因为他们大多数从来没使用过map。map()是一个循环list的简单方式,把其中内容一个一个传递给函数。上面的map()函数等价如下:

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

我希望上述代码已经解释清楚了关于map()函数的任何疑惑。

第四步:

现在让我们来包装我们的代码。剩下的唯一一件事就是:

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

把这个加到你代码的末尾。这会告诉我们什么时候脚本会被独立于shell执行,什么时候会被另一个脚本调用。如果你想在其他项目中使用这个脚本,这样做会非常方便。

最后,这是完整的代码

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

如果你已经保存了这个脚本为url_shortener.py,你可以在shell中这样运行它:

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

如果你想保存这些tinyurls在txt文档里,就执行这行命令:

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

QQ的坦白说,是匿名的!这可难不倒我!我用Python分分钟破解它!

这个脚本在python2 和 python3中都可以运行。它主要针对两种人,第一种是学习python并希望制作一个简单却有用的脚本的人,还有那些希望学会如何在python中制作url网址缩略的人。到此为止关于url缩址的用法就讲解完啦,希望对你有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐