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使用Berkeley DB数据库实例
Sep 26 Python
Python实现windows下模拟按键和鼠标点击的方法
Mar 13 Python
python执行外部程序的常用方法小结
Mar 21 Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 Python
python查询mysql,返回json的实例
Mar 26 Python
windows下python安装pip图文教程
May 25 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
python 有效的括号的实现代码示例
Nov 11 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 Python
详细分析Python垃圾回收机制
Jul 01 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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和ACCESS写聊天室(六)
2006/10/09 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
JQuery 常用操作代码
2010/03/14 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python返回昨天日期的方法
2015/05/13 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
python 美化输出信息的实例
2018/10/15 Python
Python实现的特征提取操作示例
2018/12/03 Python
基于python实现KNN分类算法
2020/04/23 Python
Django框架验证码用法实例分析
2019/05/10 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
Python telnet登陆功能实现代码
2020/04/16 Python
python 实现图片批量压缩的示例
2020/12/18 Python
30年同学聚会感言
2014/01/30 职场文书
捐款活动总结
2014/08/27 职场文书
保护环境建议书作文500字
2015/09/14 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL