Python3,10行代码竟然让URL变短了,没想到还可以这么玩。

举报
Carl_奕然 发表于 2023/07/12 12:10:50 2023/07/12
【摘要】 网友:现在已经开始玩url了。

1、引言


小云:鱼哥,有没有什么方法,能让url变短一点
小鱼:我去~ url怎么惹你了, 你让它变短。?
小云:没有了, 我就是觉得url太长了, 复制的时候不得劲。
小鱼:就这?
小云:对啊,就这。
小鱼:那确实有办法。
小云:嘿嘿, 俺就知道你有办法。
小鱼:俺就知道你昨天刚充的会员。
小云:… 我擦, 这都知道?
小鱼:猜的。
小云:别闹, 正经的,教教俺,如何让url变短
小鱼:这还不好办。

在这里插入图片描述
2、代码实战


2.1 定义


urllib是Python标准库中的一个模块,它提供了一组用于处理URL的函数和方法。
它的功能包括:

  • 获取URL的内容
  • 访问指定的URL
  • 删除URL中的特定部分
  • 添加自定义的请求头等


2.2 常用函数


接下来,我也列举一些urllib常用的函数,以及代码示例:

  • urllib.request.urlopen():打开指定的URL并返回一个HTTP响应对象。


代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-07-08
# @Author : Carl_DJ


import urllib.request
'''
打开指定的URL并返回一个HTTP响应对象
'''
url = 'https://blog.csdn.net/wuyoudeyuer'
response = urllib.request.urlopen(url)

print(response.read())

  • urllib.request.urlretrieve():从指定的URL下载文件并保存到本地文件。


代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-07-08
# @Author : Carl_DJ


import urllib.request
'''
从指定的URL下载文件并保存到本地文件
'''
url = 'https://blog.csdn.net/wuyoudeyuer/file.txt'
filename = 'file.txt'
urllib.request.urlretrieve(url, filename)

  • urllib.request.add_header():向HTTP请求头中添加自定义的头部信息。


代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-07-08
# @Author : Carl_DJ


import urllib.request
'''
向HTTP请求头中添加自定义的头部信息
'''
url = 'https://blog.csdn.net/wuyoudeyuer'
headers = {'User-Agent': 'Mozilla/5.0'}
urllib.request.add_header('headers', headers)

  • urllib.request.delete():删除指定的URL。


代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-07-08
# @Author : Carl_DJ


import urllib.request
'''
删除指定的URL
'''
url = 'https://blog.csdn.net/wuyoudeyuer'
urllib.request.delete(url)

  • urllib.request.build_request():构建HTTP请求对象。

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-07-08
# @Author : Carl_DJ


import urllib.request
'''
构建HTTP请求对象
'''

url = 'https://blog.csdn.net/wuyoudeyuer'
req = urllib.request.Request(url)
req.add_header('header', 'value')
response = urllib.request.urlopen(req)

  • urllib.error.URLError:处理URL请求时可能会发生的异常。


代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-07-08
# @Author : Carl_DJ

import urllib.error
'''
处理URL请求时可能会发生的异常
'''
try:
    urllib.request.urlopen(url)
except urllib.error.URLError as e:
    print(e)




2.3 示例


代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-07-08
# @Author : Carl_DJ
'''
实现功能:
    让URL变短
'''


from __future__ import with_statement
import contextlib

try:
    from urllib.parse import urlencode
except ImportError:
    from urllib import urlencode
try:
    from urllib.request import urlopen
except ImportError:
    from urllib2 import urlopen
import sys

#定义短url函数
def tiny_url(url):
    #设置请求的url
    request_url = ('http://xxxx.com' +
                   urlencode({'url': url}))
    with contextlib.closing(urlopen(request_url)) as response:
        return response.read().decode('utf-8')

#定义main函数
def main():
    for tinyurl in map(tiny_url, sys.argv[1:]):
        print(tinyurl)

#运行
if __name__ == '__main__':
    main()




3、总结


看到这里,今天的内容差不多就该结束了。
今天主要分享了一个url变短的小技巧,是不是很好玩。

每天学习一个小技巧, 是不是很有意思。

我是小鱼

  • CSDN 博客专家;
  • 阿里云 专家博主;
  • 51CTO博客专家;
  • 51认证讲师等;
  • 认证金牌面试官;
  • 职场面试及培训规划师;
  • 多个国内主流技术社区的认证专家博主;
  • 多款主流产品(阿里云等)测评一、二等奖获得者;


关注我,带你学习更多更专业更前言的Python技术。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。