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缩址的用法就讲解完啦,希望对你有所帮助。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...