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 Web框架Pylons中使用MongoDB的例子
Dec 03 Python
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
Python GUI布局尺寸适配方法
Oct 11 Python
python实现五子棋小游戏
Mar 25 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 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
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
python中的错误处理
2016/04/10 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python中加背景音乐如何操作
2020/07/19 Python
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
2013年最新自荐信范文
2014/06/23 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
《桂花雨》教学反思
2016/02/19 职场文书