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比较两个图片相似度的方法
Mar 13 Python
Python实时获取cmd的输出
Dec 13 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
Python使用爬虫爬取静态网页图片的方法详解
Jun 05 Python
django admin 后台实现三级联动的示例代码
Jun 22 Python
将pip源更换到国内镜像的详细步骤
Apr 07 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
PyQt5 多窗口连接实例
Jun 19 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 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 作用域解析运算符(::)
2010/07/27 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
javascript数组组合成字符串的脚本
2021/01/06 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
大学生职业生涯规划方案
2014/01/03 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
测控技术自荐信
2014/06/05 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
婚内房产协议书范本
2014/10/02 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang