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如何实现文本转语音
Aug 08 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
python实现PCA降维的示例详解
Feb 24 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
opencv 图像轮廓的实现示例
Jul 08 Python
为什么说python更适合树莓派编程
Jul 20 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
OpenCV-Python实现轮廓拟合
Jun 08 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 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
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP里的单例类写法实例
2015/06/25 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
js 判断 enter 事件
2009/02/12 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
vue实现计算器功能
2020/02/22 Javascript
Python制作爬虫抓取美女图
2016/01/20 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
安装docker-compose的两种最简方法
2019/07/30 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
Servlet的生命周期
2013/08/25 面试题
先进党支部事迹材料
2014/01/13 职场文书
交通事故协议书
2014/04/15 职场文书
保护环境倡议书300字
2014/05/19 职场文书
企业负责人任命书
2014/06/05 职场文书
2015年元旦标语大全
2014/12/09 职场文书
硕士论文致谢范文
2015/05/14 职场文书
跳高加油稿
2015/07/21 职场文书
办公室管理规章制度
2015/08/04 职场文书
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers