`
xitongyunwei
  • 浏览: 930063 次
文章分类
社区版块
存档分类
最新评论

可以替换掉网页某个文件的代理

 
阅读更多
用twisted写一个替换掉网站上某个文件的代理,作用参见http://lifesinger.org/blog/?p=40 “如何直接调试线上页面的JavaScript和CSS”这篇文章,有了这个就不用fidder了,而且使用更加方便,替换时把要把原来的文件的content-length这个header去掉:

from twisted.web import http

from twisted.web import proxy

from twisted.internet import reactor

from twisted.python import log

import sys

log.startLogging(sys.stdout)



rpl_urls ={

"http://g.cn/" : "g.cn.html",

}

urls = rpl_urls

#import config

#urls = config.rpl_urls



class rpl_Proxy(proxy.Proxy):

def __init__(self):

log.msg("hey, rpl_proxy init")

proxy.Proxy.__init__(self)

self.requestFactory = rpl_ProxyRequest



class rpl_ProxyRequest(proxy.ProxyRequest):

def __init__(self, channel, queued, reactor=reactor):

log.msg("hey, rpl_ProxyRequest init")

proxy.ProxyRequest.__init__(self, channel, queued, reactor)



def process(self):

log.msg("url:",self.uri)

if self.uri in urls:

filename = urls[self.uri]

fd = open( filename, "rb" )

self.transport.write( fd.read() )

self.transport.loseConnection()

else:

proxy.ProxyRequest.process(self)



class ProxyFactory(http.HTTPFactory):

def __init__(self):

http.HTTPFactory.__init__(self)

self.protocol = rpl_Proxy



if __name__ == '__main__':

"""

written by karlzheng; http://blog.csdn.net/zhengkarl

"""

reactor.listenTCP(8080, ProxyFactory())

reactor.run()



#http://wiki.python.org/moin/Twisted-Examples
http://bbs.superlinux.cn/viewthread.php?tid=2560&extra=page%3D1&frombbs=1

分享到:
评论

相关推荐

    奇代(代理工具)-crx插件

    代理工具-指哪代哪 该扩展工具是为了方便...特殊用法:比如我希望将某个文件夹下的所有文件都代理到本地可以进行如下配置 源文件:https://xxxx.com/static/* 替换为:localhost:9000/static/* 支持语言:中文 (简体)

    详解nginx配置url重定向-反向代理

    本文系统:Centos6.5_x64 ... 一、nginx 地址重定向 二、nginx 反向代理 1、地址重定向:是指当使用者浏览某个网址时,将他导向到另一...又有可能因为换了网路的免费网页空间,网址又必须要变更,不知情的使用者还以为

    Sosoo 1.0网络爬虫程序.doc

    能会出现超时的情况,通过设置超时时间来限制对某个url连接的最大时间,这样就可以提高处理的速度,但是如果这个值设置太小,可能很多连接都会连接不到,建议使用大于30的值,默认为60s。 robby....

    nh2:用于tls终止和Web加速的http2代理

    以后的某个时间,可以选择SPDY样式的服务器推送。 选项 -p此代理应侦听的端口。 预设值为443。 -k TLS密钥 -c TLS证书,作为.crt文件或.pem文件 -h后端主机以向其发送流量。 可以是主机名,例如localhost或IP地址...

    ptp_rule_proxy:带有规则的非透明 Web 代理

    使用 xml 配置文件,您可以替换属性/内容中的字符串。 运行:azoo.com.ptp_rule_proxy.PTPProxyMain -Dlocal.port=1234 测试是否启动: wget localhost:1234 编码页面示例: : -Dlocal.port=1235 -Dremote.host=...

    JAVA代码生成工具

    unique="是否唯一性约束" nullable="是否可以为空" pk="是否主键,在表没有主键的情况下,可以指定一个代理主键" updatable="是否可以更新" insertable="是否插入" enumString="枚举值,以分号分隔,示例值:M(1,...

    偷天换日-crx插件

    资源,接口代理这是一款帮你本地的javascript 文件替换线上的javascript 文件的插件,在前端开发中,可以在线上环境中,把本地更改过的js替换线上js 来做测试,方便快捷。1.0.1 更新: 1. 加入了强制对比,匹配会...

    好用的代码生成源码

    unique="是否唯一性约束" nullable="是否可以为空" pk="是否主键,在表没有主键的情况下,可以指定一个代理主键" updatable="是否可以更新" insertable="是否插入" enumString="枚举值,以分号分隔,示例值:M(1,男);F...

    1345个易语言模块

    [神2也教你学E] - 可执行动态载入&输出其他文件模块.ec _仿真shell库.ec √功能键状态√.ec √取功能键状态√.ec 万 年历.ec 万能注册验证模块.ec 世宝脚本语言引擎.ec 世恒通用安装系统文件压缩模块.ec 世恒通用...

    KODExplorer 芒果云-资源管理器

    - 当然你也可以用来分享文件 - Web IDE / browser code editor awesomeness - 更多场景等你来挖掘!…… #### 3.使用说明 管理员: admin/admin 普通用户:demo/demo 游客用户:guest/guest [如何使用] 下载...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    当新记录复制唯一键值的旧记录时,REPLACE关键字可以将旧记录替换为新记录。 如果备份时遇到服务器性能问题,可以有帮助的一个策略是在从服务器而不是主服务器上建立复制并执行备份。如果使用Veritas文件系统,可以...

    dotfiles:bash,zsh,git,tmux,个人工具箱

    点文件Mislav的bash,zsh,git,ruby等... 如果要替换现有的点文件,只需将它们移动到备份位置,然后再次运行install。杂项bin命令检查中的命令,例如: ansi2html git-unreleased 一对代理人tmux会话sh 实现完成启用

    python cookbook(第3版)

    5.18 将文件描述符包装成文件对象 5.19 创建临时文件和文件夹 5.20 与串行端口的数据通信 5.21 序列化Python对象 第六章:数据编码和处理 6.1 读写CSV数据 6.2 读写JSON数据 6.3 解析简单的XML数据 6.4 ...

    Radmin自动登录器v3.0-多国语言绿色版-Release1-20150615

    单击主菜单、帮助中的“V2.0转V3.0记录文件”菜单项,可以将RadminM V2.0的记录文件转换为RadminM V3.0的记录文件。执行转换之前,请先备份好RadminM.txt。新生成的文件可能覆盖RadminM.txt。 (2)、v1.5的RadminM...

    Radmin自动登录器v3.0

    单击主菜单、帮助中的“V2.0转V3.0记录文件”菜单项,可以将RadminM V2.0的记录文件转换为RadminM V3.0的记录文件。执行转换之前,请先备份好RadminM.txt。新生成的文件可能覆盖RadminM.txt。 (2)、v1.5的RadminM...

    LINUX安装与配置简明手册

    4.1.5 系统开机引导时可以使用的服务 35 4.1.6 安装多个操作系统 36 4.2 快速解决方案 36 4.2.1 确定哪些安装盘是必需的 36 4.2.2 制作一张Linux操作系统的安装引 导盘 37 4.2.3 下载最新的引导启动映像 37 4.2.4 ...

    linux安装与配置简明手册

    5.2.23 通过搜索locate数据库来查找文件 62 5.2.24 在path语句说明的路径中查找 文件 62 5.2.25 在path语句中添加新路径 63 5.2.26 在文件内容中查找文本 63 5.2.27 寻求帮助 63 5.2.28 在后台运行命令程序 63...

    Python Cookbook

    2.3 搜索和替换文件中的文本 64 2.4 从文件中读取指定的行 65 2.5 计算文件的行数 66 2.6 处理文件中的每个词 68 2.7 随机输入/输出 70 2.8 更新随机存取文件 71 2.9 从zip文件中读取数据 73 2.10 处理字符串...

Global site tag (gtag.js) - Google Analytics