使用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()
(0)

相关推荐

  • 介绍Python的Urllib库的一些高级用法

    1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览器,调试浏览器F12,我用的是Chrome,打开网络监听,示意如下,比如知乎,点登录之后,我们会发现登陆之后界面都变化 了,出现一个新的界面,实质上这个页面包含了许许多多的内容,这些内容也不是一次性就加载完成的,实质上是执行了好多次请求,一般是首先请求HTML文 件,然后加载JS,CSS 等等,经过

  • python使用urlparse分析网址中域名的方法

    本文实例讲述了python使用urlparse分析网址中域名的方法.分享给大家供大家参考.具体如下: 这里给定网址,通过下面这段python代码可以很容易获取域名信息 import urlparse url = "http://www.jb51.net" domain = urlparse.urlsplit(url)[1].split(':')[0] print "The domain name of the url is: ", domain 输出结果如下: Th

  • 使用Python生成url短链接的方法

    几乎所有的微薄都提供了缩短网址的服务,其原理就是将一个url地址按照一定的算法生成一段字符串,然后加在一个短域名后面边成了一个新的url地址,数据库中会存放这个短地址和原始的地址,当用户点击这个新的短地址后,短地址服务会根据短域名后面的几个字符串从数据库中读出原来的地址然后页面进行跳转 . 比如新浪微薄中的url 是 http://t.cn/xxxxxxx  t.cn是其域名 ,其后面跟着的是7位算出来的字符串. 方法一:使用哈希库自定义算法 因为文本中显示太长的url会比较乱,或者采用省略显示

  • python对url格式解析的方法

    本文实例讲述了python对url格式解析的方法.分享给大家供大家参考.具体分析如下: python针对url格式的解析,可根据指定的完整URL解析出url地址的各个部分 from urlparse import urlparse url_str = "http://www.163.com/mail/index.htm" url = urlparse(url_str) print 'protocol:',url.scheme print 'hostname:',url.hostname

  • python实现对一个完整url进行分割的方法

    本文实例讲述了python实现对一个完整url进行分割的方法.分享给大家供大家参考.具体分析如下: python对一个完整的url进行分割,将url分割成单独的部分,包括协议.域名.端口.路径.参数等等 import urlparse print urlparse.urlsplit('http://www.jb51.net:80/faq.cgi?src=fie') 结果如下: 复制代码 代码如下: SplitResult(scheme='http', netloc='www.jb51.net:8

  • python打开url并按指定块读取网页内容的方法

    本文实例讲述了python打开url并按指定块读取网页内容的方法.分享给大家供大家参考.具体实现方法如下: import urllib pagehandler = urllib.urlopen("http://www.baidu.com") outputfile = open("index.html", "wb") while 1: data = pagehandler.read(512) if not data: break outputfil

  • Python的Urllib库的基本使用教程

    1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它 是一段HTML代码,加 JS.CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服.所以最重要的部分是存在于HTML中的,下面我 们就写个例子来扒一个网页下来. import urllib2 response = urllib2.urlopen("http://www.baidu.com&qu

  • python urllib中的编码处理示例

    复制代码 代码如下: >>> import urllib >>> data = '丽江' >>> print data 丽江 >>> data '\xe4\xb8\xbd\xe6\xb1\x9f' >>> urllib.quote(data) '%E4%B8%BD%E6%B1%9F' 那我们想转回去呢? 复制代码 代码如下: >>> urllib.unquote('%E4%B8%BD%E6%B1%9

  • Python实现将绝对URL替换成相对URL的方法

    本文实例讲述了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标

  • 使用Python脚本在Linux下实现部分Bash Shell的教程

    对于Linux用户来说,命令行的名声相当的高.不像其他操作系统,命令行是一个可怕的命题,但是对于Linux社区中那些经验丰富的大牛,命令行却是最值得推荐鼓励使用的.通常,命令行对比图形用户界面,更能提供更优雅和更高效的解决方案. 命令行伴随着Linux社区的成长,UNIX shells,例如 bash和zsh,已经成长为一个强大的工具,也是UNIX shell的重要组成部分.使用bash和其他类似的shells,可以得到一些很有用的功能,例如,管道,文件名通配符和从文件中读取命令,也就是脚本.

  • 用Python脚本来删除指定容量以上的文件的教程

    文件多了乱放, 突然有一天发现硬盘空间不够了, 于是写了个python脚本搜索所有大于10MB的文件,看看这些大文件有没有重复的副本,如果有,全部列出,以便手工删除 使用方式 加一个指定目录的参数 比如python redundant_remover.py /tmp 主要用到了stat模块,os.sys系统模块 import os, sys #引入统计模块 from stat import * BIG_FILE_THRESHOLD = 10000000L dict1 = {} # filesiz

  • 使用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 #

  • 利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程

    在 CentOS 下使用 apache+mod_wsgi 部署了 MoinMoin,但是编辑和保存页面很慢,于是准备使用 nginx+uwsgi 重新部署 本文假定已经按照官方指引 Quick MoinMoin on CentOS完成了 apache 和 mod_wsgi 之外的基础安装 安装 Nginx 默认情况下,CentOS 下没有 nginx 的源,需要自己手动添加,访问 http://nginx.org/en/linux_packages.html#stable 下载 CentOS 6

  • 使用Python脚本将Bing的每日图片作为桌面的教程

    微软最近出了个 必应bing 缤纷桌面,使用下来还是不错,可以每天更换Bing首页的北京作为壁纸,但是该软件有个不好的地方是,安装后桌面上会有一个搜索框出现,很是烦人,而且不能关掉.于是出于技术考虑,想到了使用Python来实现这个功能. 正如很多介绍Python书中那样,Python是中胶水语言,用在哪里都是可行的.想要使用Python给桌面设置背景只需要下个模块安装即可: http://sourceforge.net/projects/pywin32/ 代码非常简单,参考了网上一些其他人写了

  • 编写Python脚本来实现最简单的FTP下载的教程

    访问FTP,无非两件事情:upload和download,最近在项目中需要从ftp下载大量文件,然后我就试着去实验自己的ftp操作类,如下(PS:此段有问题,别复制使用,可以参考去试验自己的ftp类!) import os from ftplib import FTP class FTPSync(): def __init__(self, host, usr, psw, log_file): self.host = host self.usr = usr self.psw = psw self.

  • python脚本替换指定行实现步骤

     python脚本替换指定行实现步骤        本文主要介绍了Python的脚本替换,由于工作的需要,必须对日志系统进行更新,这里在网上搜索到一篇文章比较不错,这里记录下,大家可以参考下, 工作中需要迁移代码,并把原来的日志系统更新到现在的格式,原来获取log的格式是 AuctionPoolLoggerUtil.getLogger() 现在获取log的格式是: LoggerFactory.getLogger(XXXXX.class) 这里的XXXXX需要替换为当前的类名.如果这样的java文

  • Python脚本操作Excel实现批量替换功能

    大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换. 使用的工具 Openpyxl,一个处理excel的python库,处理excel,其实针对的就是WorkBook,Sheet,Cell这三个最根本的元素~ 明确需求原始excel如下 我们的目标是把下面excel工作表的sheet1表页A列的内容"替换我吧"批量替换为B列的"我用来替换的x号选手" 实现替换后的效果图,C列为B列替换A列的指定内容后的结果 实现以上功能的同时,我也实现excel

  • python脚本框架webpy的url映射详解

    目录 实例 问题 URL完全匹配(具体的url) /index URL模糊匹配(你根本就不知道index后面是什么,它根本不会返回参数) /index/\d URL带组匹配(主要有个'()',它的作用主要是返回参数,你处理的类中一定要有个参数接受) /baidu/(.*) 实例 import web urls=('/index','AbsoluteUrl', '/index/\d','AmbiguousUrl', '/index/(.*)','GroupUrl') #具体的url处理类 clas

随机推荐