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字符串替换的2种方法
Nov 30 Python
Django基础之Model操作步骤(介绍)
May 27 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
python实现图片批量压缩程序
Jul 23 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
python 标准差计算的实现(std)
Jul 29 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
对python中各个response的使用说明
Mar 28 Python
python动态规划算法实例详解
Nov 22 Python
python解压zip包中文乱码解决方法
Nov 27 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
python使用opencv读取图片的实例
2017/08/17 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python实现直播推流效果
2019/11/26 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
新闻编辑自荐信
2013/11/03 职场文书
2014年女职工工作总结
2014/11/27 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
python本地文件服务器实例教程
2021/05/02 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python