使用Python脚本将绝对url替换为相对url的教程
作者:C Wong 发布时间:2022-09-03 09:36:39
标签:Python
公司一个项目需要上传图片,一开始同事将图片上传后结合当前主机拼成了一个绝对的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()


猜你喜欢
- 1. glob文件名模式匹配尽管glob API很小,但这个模块的功能却很强大。只要程序需要查找文件系统中名字与某个模式匹配的一组文件,就可
- 问题出现在当时后台数据会返回到data中但是没有出现下拉菜单,查询资料 发现 Vue的this理解有误jsp 下拉菜单 <select
- 下面先看下python 使用值排序字典的方法In [8]: a={'x':11,'y':22,'c&
- array_key_exists()PHP array_key_exists() 函数用于检查给定的键名或索引是否存在于数组中,如果存在则返
- 本文实例讲述了python计算书页码的统计数字问题,是Python程序设计中一个比较典型的应用实例。分享给大家供大家参考。具体如下:问题描述
- 引言 本文通过python3、第三方python库Selenium和谷歌浏览器Chrome,完成WPS表单的自动填写。开发环境配置 py
- 开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE。查看本站首页原代码,可以看到第一行就是:<!DOCTYPE h
- 虽然说标题将的是首页的访问感受,但是同样适合于网站其它页面的用户体验设计,一个好的网站设计应当尽量做到首页和次页一视同仁。第一步(视觉设计)
- 本文实例讲述了Python获取基金网站网页内容、使用BeautifulSoup库分析html操作。分享给大家供大家参考,具体如下:利用 ur
- 工程实践中,多数情况下,大矩阵一般都为稀疏矩阵,所以如何处理稀疏矩阵在实际中就非常重要。本文以Python里中的实现为例,首先来探讨一下稀疏
- 目录1、功能介绍2、关键代码2.1 主页功能2.2 添加商品信息2.3 数据库设计商品表前言:  
- PDOStatement::setAttributePDOStatement::setAttribute — 设置一个语句属性(PHP 5
- 本文主要给大家介绍了关于webpack中publicPath路径问题的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:output:
- // 1.采用计算属性来获取$store中的值computed: { listenstage() {
- 多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,比如用
- 通常我们做统计图的时候需要借助组件来完成例如mschart,aspchart等但是这个类不需要任何组件,而且使用方便,本站测试可用:clsG
- python代码实现冒泡排序代码其实很简单,具体代码如下所示:代码Code highlighting produced by Actipro
- assert断言声明,遇到错误则立即返回在使用python语言开发深度学习模型时,经常会遇到模型运行结束时才会发现的崩溃状态,或者得到的结果
- 本文为大家分享了python八皇后问题的解决方法,供大家参考,具体内容如下题目:给定一个 N*N 正方形棋盘,在上面放置 N个棋子,又叫皇后
- itertools.product:类似于求多个可迭代对象的笛卡尔积。使用的形式是:itertools.product(*iterables