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代码来绘制彭罗斯点阵的教程
Apr 03 Python
python复制与引用用法分析
Apr 08 Python
Python简明入门教程
Aug 04 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
python打开文件的方式有哪些
Jun 29 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
python 制作磁力搜索工具
Mar 04 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中error_log()函数的使用方法
2015/01/20 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
PHP文件操作实例总结
2016/09/27 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
scrapy爬虫完整实例
2018/01/25 Python
python 获取字符串MD5值方法
2018/05/29 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
网上快餐厅创业计划书
2014/02/01 职场文书
成事在人观后感
2015/06/16 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python