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 相关文章推荐
使用Django的模版来配合字符串翻译工作
Jul 27 Python
简单谈谈python基本数据类型
Sep 26 Python
django Serializer序列化使用方法详解
Oct 16 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
Python Django路径配置实现过程解析
Nov 05 Python
python高温预警数据获取实例
Jul 23 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
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
js 小数取整的函数
2010/05/10 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
JS跨域问题详解
2014/11/25 Javascript
Javascript函数的参数
2015/07/16 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
Form表单及django的form表单的补充
2019/07/25 Python
python中append实例用法总结
2019/07/30 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python多进程并行代码实例
2019/09/30 Python
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
中英双版中文教师求职信
2013/10/27 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
医院院务公开实施方案
2014/05/03 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
单位工作证明书格式
2014/10/04 职场文书
2014年检验科工作总结
2014/11/22 职场文书
经理岗位职责范本
2015/04/15 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
2016五一手机促销广告语
2016/01/28 职场文书