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利用多进程将大量数据放入有限内存的教程
Apr 01 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
Python win32com 操作Exce的l简单方法(必看)
May 25 Python
Python探索之修改Python搜索路径
Oct 25 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
python处理multipart/form-data的请求方法
Dec 26 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
python如何随机生成高强度密码
Aug 19 Python
5行Python代码实现一键批量扣图
Jun 29 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短网址的生成代码(仿微博短网址)
2014/05/07 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
Js 本页面传值实现代码
2009/05/17 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
Python实现配置文件备份的方法
2015/07/30 Python
Python装饰器用法实例总结
2018/05/26 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
pymysql 开启调试模式的实现
2019/09/24 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
《三峡》教学反思
2014/03/01 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
推荐信格式范文
2014/05/09 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS