Python實現(xiàn)將絕對URL替換成相對URL的方法
本文實例講述了Python實現(xiàn)將絕對URL替換成相對URL的方法。分享給大家供大家參考。具體分析如下:
一、問題:
公司一個項目需要上傳圖片,一開始同事將圖片上傳后結合當前主機拼成了一個絕對的URL(http://192.168.1.1:888/m/getimg?filename=xxx.jpg)由于同時給手機終端提供接口,在手機終端會引起一些bug,改完代碼后要求將以前的uri替換成相對的URL(/m/getimg?filename=xxx.jpg),由于圖片是用img標簽嵌入到內(nèi)容同時用a標簽括起顯示大圖的,所以需要讀取數(shù)據(jù)庫并對內(nèi)容進行替換
二、解決方法:
#!/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 MySQL數(shù)據(jù)庫基本操作及項目示例詳解
這篇文章主要介紹了Python連接MySQL數(shù)據(jù)庫后的一些基本操作,并以銀行管理系統(tǒng)項目為例,為大家具體介紹了一下部分功能的實現(xiàn),文中的示例代碼具有一定的學習價值,感興趣的可以了解一下2021-12-12
python編寫學生成績管理系統(tǒng)的邏輯結構及功能實現(xiàn)
這篇文章主要為大家介紹了python編寫學生成績管理系統(tǒng)實現(xiàn)八個功能示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04

