• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

用Python将绝对URL替换成相对URL

PHP 水墨上仙 1767次浏览 0个评论

公司一个项目需要上传图片,一开始同事将图片上传后结合当前主机拼成了一个绝对的URL(http://192.168.1.1:888/m/getimg?filename=xxx.jpg)由于同时给手机终端提供接口,在手机终端会引起一些bug,改完代码后要求将以前的uri替换成相对的URL(/m/getimg?filename=xxx.jpg),由于图片是用img标签嵌入到内容同时用a标签括起显示大图的,所以需要读取数据库并对内容进行替换
转自:” target=”_blank”>http://www.linuxzen.com/index.php/archives/382

#!/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()


喜欢 (0)

您必须 登录 才能发表评论!

加载中……