Python实现将绝对URL替换成相对URL的方法


Posted in Python onJune 28, 2015

本文实例讲述了Python实现将绝对URL替换成相对URL的方法。分享给大家供大家参考。具体分析如下:

一、问题:

公司一个项目需要上传图片,一开始同事将图片上传后结合当前主机拼成了一个绝对的URL(http://192.168.1.1:888/m/getimg?filename=xxx.jpg)由于同时给手机终端提供接口,在手机终端会引起一些bug,改完代码后要求将以前的uri替换成相对的URL(/m/getimg?filename=xxx.jpg),由于图片是用img标签嵌入到内容同时用a标签括起显示大图的,所以需要读取数据库并对内容进行替换

二、解决方法:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#
#
# author : cold night
# email  : wh_linux@126.com
#
import pymongo
import re
from StringIO import StringIO
conn = pymongo.Connection()
db = conn.test
def replace_url():
  regex = re.compile(r'([href¦src])=["¦\']http://.*?(/m/getimg\?.*?)["¦\']')
  results = db['test'].find()
  db_coll = db['test']
  def replace(r):
    content = r.get('content')
    if not content: return
    content = StringIO(content)
    content.seek(0)
    result = StringIO()
    for line in content.readlines():
      t = regex.sub(r'\1="\2"', line)
      result.write(t)
    result.seek(0)
    content = result.read()
    if content:
      r['content'] = content
    _id = r.get('_id')
    db_coll.update({'_id':_id}, r)
  results = [replace(i) for i in results]
if __name__=="__main__":replace_url()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python连接字符串的方法小结
Jul 13 Python
详解Python命令行解析工具Argparse
Apr 20 Python
python如何在终端里面显示一张图片
Aug 17 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
详解Python之unittest单元测试代码
Jan 24 Python
Python requests发送post请求的一些疑点
May 20 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
什么是python的函数体
Jun 19 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 Python
python实现将html表格转换成CSV文件的方法
Jun 28 #Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 #Python
python自动zip压缩目录的方法
Jun 28 #Python
python查找指定具有相同内容文件的方法
Jun 28 #Python
python中getaddrinfo()基本用法实例分析
Jun 28 #Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 #Python
分析用Python脚本关闭文件操作的机制
Jun 28 #Python
You might like
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
Python简单生成8位随机密码的方法
2017/05/24 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Django如何将URL映射到视图
2019/07/29 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
Python csv文件记录流程代码解析
2020/07/16 Python
药剂专业学生求职信范文
2013/12/28 职场文书
九年级化学教学反思
2014/01/28 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL