Python实现将绝对URL替换成相对URL的方法

 更新时间:2015年06月28日 15:08:00   作者:秋风秋雨  
这篇文章主要介绍了Python实现将绝对URL替换成相对URL的方法,涉及Python字符串操作及正则匹配的相关技巧,需要的朋友可以参考下

本文实例讲述了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中常用功能的实现代码分享

    这篇文章主要为大家整理分享了11个Python中常用功能的实现代码片段,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04
  • Python语言基础之函数语法

    Python语言基础之函数语法

    这篇文章主要介绍了Python语言基础中的函数语法,文中有详细的代码示例供大家参考,对学习或工作有一定的帮助,需要的朋友可以参考阅读下
    2023-05-05
  • Python多线程处理实例详解【单进程/多进程】

    Python多线程处理实例详解【单进程/多进程】

    这篇文章主要介绍了Python多线程处理,结合实例形式总结分析了Python单进程、多进程、多线程等相关操作技巧与注意事项,需要的朋友可以参考下
    2019-01-01
  • 在Python中操作时间之tzset()方法的使用教程

    在Python中操作时间之tzset()方法的使用教程

    这篇文章主要介绍了在Python中操作时间之tzset()方法的使用教程,是Python学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python中Matplotlib的点、线形状、颜色以及绘制散点图

    Python中Matplotlib的点、线形状、颜色以及绘制散点图

    与线型图类似的是,散点图也是一个个点集构成的,下面这篇文章主要给大家介绍了关于Python中Matplotlib的点、线形状、颜色以及绘制散点图的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • pytorch实现多项式回归

    pytorch实现多项式回归

    这篇文章主要为大家详细介绍了pytorch实现多项式回归,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Python OpenCV实现视频分帧

    Python OpenCV实现视频分帧

    这篇文章主要为大家详细介绍了Python OpenCV实现视频分帧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • scikit-learn处理缺失数据的方法与实践

    scikit-learn处理缺失数据的方法与实践

    scikit-learn作为Python中广泛使用的机器学习库,提供了多种工具和技术来帮助我们处理缺失数据,本文将详细介绍sklearn处理缺失数据的方法,并提供实际的代码示例,需要的朋友可以参考下
    2024-06-06
  • python多线程同步售票系统

    python多线程同步售票系统

    这篇文章主要介绍了python多线程同步售票系统,文章基于python的相关资料展开详细的多线程同步售票系统介绍,感兴趣的小伙伴可以参考一下
    2022-05-05
  • Python中sorted()函数的强大排序技术实例探索

    Python中sorted()函数的强大排序技术实例探索

    排序在编程中是一个基本且重要的操作,而Python的sorted()函数则为我们提供了强大的排序能力,在本篇文章中,我们将深入研究不同排序算法、sorted() 函数的灵活性,以及各种排序场景下的最佳实践
    2024-01-01

最新评论