Python實(shí)現(xiàn)將絕對(duì)URL替換成相對(duì)URL的方法
本文實(shí)例講述了Python實(shí)現(xiàn)將絕對(duì)URL替換成相對(duì)URL的方法。分享給大家供大家參考。具體分析如下:
一、問(wèn)題:
公司一個(gè)項(xiàng)目需要上傳圖片,一開(kāi)始同事將圖片上傳后結(jié)合當(dāng)前主機(jī)拼成了一個(gè)絕對(duì)的URL(http://192.168.1.1:888/m/getimg?filename=xxx.jpg)由于同時(shí)給手機(jī)終端提供接口,在手機(jī)終端會(huì)引起一些bug,改完代碼后要求將以前的uri替換成相對(duì)的URL(/m/getimg?filename=xxx.jpg),由于圖片是用img標(biāo)簽嵌入到內(nèi)容同時(shí)用a標(biāo)簽括起顯示大圖的,所以需要讀取數(shù)據(jù)庫(kù)并對(duì)內(nèi)容進(jìn)行替換
二、解決方法:
#!/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()
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python類(lèi)成員繼承重寫(xiě)的實(shí)現(xiàn)
這篇文章主要介紹了Python類(lèi)成員繼承重寫(xiě)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
python各類(lèi)經(jīng)緯度轉(zhuǎn)換的實(shí)例代碼
這篇文章主要介紹了python各類(lèi)經(jīng)緯度轉(zhuǎn)換的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
使用Numpy讀取CSV文件,并進(jìn)行行列刪除的操作方法
今天小編就為大家分享一篇使用Numpy讀取CSV文件,并進(jìn)行行列刪除的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Python學(xué)習(xí)教程之常用的內(nèi)置函數(shù)大全
python給我們提供了很多已經(jīng)定義好的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)教程之一些常用的內(nèi)置函數(shù),文中分享了關(guān)于數(shù)學(xué)函數(shù)、功能函數(shù)、類(lèi)型轉(zhuǎn)換函數(shù)、字符串處理和序列處理函數(shù)的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-07-07
關(guān)于對(duì)python中進(jìn)程的幾個(gè)概念理解
進(jìn)程由程序,數(shù)據(jù)和進(jìn)程控制塊組成,是正在執(zhí)行的程,程序的一次執(zhí)行過(guò)程,是資源調(diào)度的基本單位,下面這篇文章主要給大家介紹了關(guān)于對(duì)python中進(jìn)程的幾個(gè)概念理解,需要的朋友可以參考下2021-10-10
Python實(shí)現(xiàn)多維數(shù)據(jù)分析的示例詳解
多維數(shù)據(jù)分析是對(duì)數(shù)據(jù)的信息分析,它考慮了許多關(guān)系,這篇文章主要為大家詳細(xì)介紹了一些使用Python分析多維/多變量數(shù)據(jù)的基本技術(shù),希望對(duì)大家有所幫助2023-11-11
Python Pandas批量讀取csv文件到dataframe的方法
這篇文章主要介紹了Python Pandas批量讀取csv文件到dataframe的方法,需要的朋友可以參考下2018-10-10

