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自动安装pip
Apr 24 Python
Python深入学习之内存管理
Aug 31 Python
django中静态文件配置static的方法
May 20 Python
python根据url地址下载小文件的实例
Dec 18 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
python读取Excel表格文件的方法
Sep 02 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
Python高阶函数、常用内置函数用法实例分析
Dec 26 Python
TensorBoard 计算图的查看方式
Feb 15 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
Python3实现建造者模式的示例代码
Jun 28 Python
matplotlib更改窗口图标的方法示例
Feb 03 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+mysql 实现身份验证代码
2010/03/24 PHP
PHP学习笔记之一
2011/01/17 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
利用JS实现数字增长
2016/07/28 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
python操作mysql代码总结
2018/06/01 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
苹果美国官方商城:Apple美国
2016/08/24 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
考试作弊被抓检讨书
2014/01/10 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
手机银行营销方案
2014/03/14 职场文书
运输服务质量承诺书
2014/03/27 职场文书
红高粱观后感
2015/06/10 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
法院执行局工作总结
2015/08/11 职场文书