参考网友?
的文章:https://blog.csdn.net/zhuang8750/article/details/123488702?utm_source=app&app_version=5.1.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
注意以下要点:
1、利用sunny库,拦截住request和response后,修改其内容。
2、sunny.start() 中指定代理端口号。只拦截自身进程不用开全局代理。
3、为实现拦截自身进程数据,需要在web.view参数中使用代理,端口号要与sunny.start() 中指定的代理端口号一致:
? ? ? var wb = web.view(winform,,`--proxy-server="socks://127.0.0.1:2021"`);
4、如果在request请求中修改response数据,将直接返回伪造的response数据,而不再去获取真实的response数据。
?相关例程代码:
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio利用sunny中间件实现拦截并修改网页内容";right=1025;bottom=680;border="thin";maximize=1)
winform.add()
/*}}*/
import godking.sunny;
var sunny=godking.sunny();
import web.view;
var wb = web.view(winform,,`--proxy-server="socks://127.0.0.1:2021"`);
sunny.callback_http = function(winform,id,msgid,msgtype,mod,url,pid,notice,err){
// 注意:1、回调函数为线程函数;2、要重新引用godking.sunny
import godking.sunny
import web.json;
if msgtype==godking.sunny.msgType.http_request and url="http://chengxu.online/index.asp?a=1" {
//data为目标网页代码(去除不想要的内容后的代码)
var data=/***
<html><head>
<title>光庆·程序·在线</title>
<link rel="shortcut icon" href="/favicon.ico">
<link rel="bookmark" href="/favicon.ico">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta content="all" name="Robots">
<meta content="MSHTML 6.00.3790.2706" name="GENERATOR">
<link href="images/Style.css" type="text/css" rel="stylesheet">
</head>
<TABLE class="toptable" height=27 cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR><TD height=100><img src="images/banner.gif"></TD></TR>
</TBODY>
</TABLE>
<body bottommargin="0" leftmargin="0" topmargin="0" rightmargin="0">
<table style="WIDTH: 100%; HEIGHT: 182px">
<form id="form1" name="form1" method="post" action="index.asp">
<tr height="36px">
<td colspan="3" valign="middle" bgcolor="#3399ff" style="FONT-SIZE: 14px;FONT-WEIGHT: bold; COLOR: white; TEXT-DECORATION: none"> 文件类型:
<select name="ClassID" id="ClassID" style="FONT-SIZE: 14px;">
<option value="0">全部类型</option>
<option value="11">aardio资源</option><option value="4">装机工具</option><option value="5">应用软件</option><option value="10">精品网站</option><option value="1">其它资料</option><option value="12">精彩文章</option>
</select> 操作系统:<select name="System" id="System" style="FONT-SIZE: 14px;">
<option value="">全部系统</option>
<option value="Win 32位">Win 32位</option>
<option value="Win 64位">Win 64位</option>
<option value="安卓系统">安卓系统</option>
<option value="网址">网址</option>
<option value="其他">其他</option>
</select> 关键字:<input name="keyword" type="text" id="keyword" size="20" value="">
<input type="submit" name="Submit" value="搜索">
</td>
</tr>
</form>
</table>
<table width="100%" align="center" cellspacing="1" cellpadding="1" class="bottomtable bgcolor_1">
<tr>
<td align="middle" colspan="3" rowspan="3" class="copyright_td">? CopyRight 2020-2028
Design By:光庆·程序·在线 QQ:17950677 微信:godking888 页面执行时间:
0.07813 秒
</td>
</tr>
</table>
</body></html>
***/
var response = godking.sunny.httpResponse(msgid);
response.setData(data); //设置返回网页内容为自定义内容
}
}
sunny.start(2021/*代理端口*/,false/*过滤正文*/,isGlobal/*全局代理*/,true/*禁止压缩*/,winform/*传递窗口*/);
wb.go("http://chengxu.online/index.asp?a=1"); //打开目标网站
winform.onClose = function(hwnd,message,wParam,lParam){//关闭窗口时停止sunny拦截
sunny.stop();
}
winform.show();
win.loopMessage();
|