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

2023-11-15

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技术。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • IDEA将web项目打包成war包

    目录 通用的方式打包 maven方式打包 eclipse版本 https blog csdn net weixin 45859844 article details 119965820 如果要到服务器部署项目 可能需要将项目打成war包 放
  • 程序员必备的思维能力:结构化思维

    在日常工作中 我们时常会碰到这样的情况 有的人讲一件事情的时候逻辑非常混乱 说了很多事情的罗列 却说不到重点 有的人写代码 本身的业务逻辑并没有多复杂 但呈现出的代码却像一堆线团 混乱不堪 无法理解 这些都是典型的缺少结构化思维的表现 导致
  • 挖矿病毒解决

    1 进程 cpu 100 watchdog 2 解决 tmp netstat 矿池 鱼池 sup 进程 文件主程序 crontab l 计划任务 分析脚本 3 如何进来的 web日志 log4j 命令 漏洞 docker yam fastj
  • Mathematica 有关向量与矩阵的函数

    下面是Mathematica中常用的关于向量和矩阵的函数
  • MySQL添加用户、删除用户、授权及撤销权限

    一 创建用户 mysql gt insert into mysql user Host User Password values localhost test password 1234 这样就创建了一个名为 test 密码为 1234 的
  • JAVA并发-Monitor简介

    什么是Monitor 1 Monitor是一种用来实现同步的工具 2 与每个java对象相关联 即每个java对象都有一个Monitor与之对应 3 Monitor是实现Sychronized 内置锁 的基础 Monitor的基本结构是什么
  • 十问十答

    凯云科技 今年六月 我们迎来了异常炎热的夏季 炎炎烈日也抵挡不了我们前进的步伐 上海 北京都留下了凯云的身影 两场展会 一场论坛 我们也得到了来自客户的高度认可 对此 小编特意整理了关于核心软件ETest的十问十答 为还心存疑惑的小伙伴们答
  • idea配置两个git源地址步骤并合并代码

    最近做项目迁移 把原来的gitlab上的代码迁移到了另一个gitlab仓库汇总 更换了git源地址 这样需要把原来项目的代码合并到新的gitlab仓库中 添加git源地址
  • Oracle数据库表的约束

    Oracle数据库约束类型主要有以下几个 primary key 主键约束 foreign key 外键约束 check 检查约束 unique 唯一约束 not null 非空约束 alter table table name add c
  • TypeScript实现八大排序与搜索算法

    前言 我们在页面上渲染数据时 通常会根据特定规则来对数据进行一个排序 然后再将其渲染到页面展示给用户 那么对数据进行排序有很多种方式 哪一种效率高 哪一种稳定性好 那一种占用内存小 本文将详解经典的八大排序算法以及三种搜索算法 并用Type
  • 【排错日记】PageHelper插件的默认分页参数

    现象 没有写如下代码 执行的结果却被分页显示了 PageHelper startPage listParam getPageNum listParam getPageSize 源码分析 调用方法判断是否需要进行分页 如果不需要 直接返回结果
  • k8s 启动探针生存探针&就绪探针

    目录 k8s 启动探针 存活探针 就绪探针 存活 就绪探针的区别 探针处理程序和结果 启动探针 存活探针 livenessProbe exec livenessProbe httpget livenessProbe tcp 就绪探针 k8s
  • 【总结】NPU/CPU/GPU 傻傻分不清?

    本文主要解答以下问题 NPU是新玩意儿吗 芯片里面的CPU GPU NPU究竟是什么 它们是怎么工作的 引言 中国首款嵌入式NPU诞生 6月20日 中星微 数字多媒体芯片技术 国家重点实验室在京宣布 中国首款嵌入式NPU 神经网络处理器 芯
  • AWTRIX像素屏时钟搭建

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 AWTRIX像素屏时钟搭建 前言 一 AWTRIX是什么 二 AWTRIX像素屏时钟搭建步骤 1 材料准备 2 ESP8266固件刷写 3 接线方式 4 手机端配网 4 服务
  • 2022中山大学计算机技术专硕考研初试、复试经验帖

    2022年中山大学计算机技术专硕考研初试 复试经验帖 个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧 可以帮助节省时间 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 如果觉得有帮助的话可以点个收藏后续会修改和增加内容
  • shell判断程序是否运行,守护进程

    一 需求 服务部署在linux上 要求服务器上的服务可以一直保持正常运行 二 问题 在linux上部署的微服务 不知道什么原因过一段时间就自己停掉了 无法启动 三 解决办法 添加angle守护进程 通过定时执行脚本来判断程序是否运行 若不是
  • 微信小程序获取微信步数

    获取步数授权 获取用户微信运动步数的前提是用户授权小程序访问他的微信运动数据 微信对用户隐私有严格的控制 任何涉及用户隐私的敏感数据都需要用户同意后小程序才能获取 只有当用户点击 允许 后 小程序才能获取用户的微信运动数据 小程序的用户授权
  • Vue组件通信方式详解(全面版)

    在Vue应用开发中 组件通信是一个重要的话题 不同的组件可能需要在不同的情况下进行数据传递和交互 Vue提供了多种方式来实现组件通信 每种方式都有其适用的场景 本文将详细介绍Vue中实现组件通信的各种方式 并为每种方式提供通俗易懂的代码示例
  • Java并发编程实战——并发容器之ConcurrentHashMap(JDK 1.8版本)

    文章目录 ConcurrentHashmap简介 从关键属性及类上来看ConcurrentHashMap的结构 put 方法管中窥豹 CAS关键操作 ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CP
  • Python3,10行代码竟然让URL变短了,没想到还可以这么玩。

    让URL变短的方法 1 引言 2 代码实战 2 1 定义 2 2 常用函数 2 3 示例 3 总结 1 引言 小屌丝 鱼哥 有没有什么方法 能让url变短一点 小鱼 我去 url怎么惹你了 你让它变短 小屌丝 没有了 我就是觉得url太长了