返回列表 发帖

【求助】过滤某网站框架的规则不能正常工作

本帖最后由 cjnt007 于 2009-9-13 17:55 编辑

我想将http://shehui.daqi.com/bbs/20/2690641.html这个页面上的框架代码去掉,改成自动跳转到被嵌套的页面,正则表达式在测试工具里测试工作正常,但编写成规则后加到黑名单里不能工作,敬请高手赐教!

这是框架页面代码
  1. <html>
  2. <head>
  3. <title>中投英国第一单:看好地产前景还是“输血”花旗?_daqi.com--大旗网</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  5. <meta name="keywords" content="中投英国第一单:看好地产前景还是“输血”花旗?">
  6. <meta name="description" content="中投英国第一单:看好地产前景还是“输血”花旗?">
  7. <script language="JavaScript">
  8. <!--
  9. document.domain = "daqi.com"; //指定 document 所属的域
  10. -->
  11. </script>

  12. <script language="javascript" src="http://www.daqi.com/total.js"></script>
  13. <script language="javascript">var dq_page_type=20; var dq_page_id=2690641; var dq_page_url='http%3A%2F%2Fwww.manguo.net%2Fthread-49625-1-1.html'; </script>
  14. <script language="javascript" src="http://www.daqi.com/clicklog.js"></script>
  15. <script language="javascript">var daqi_channel='DAQI_BAR';</script>
  16. <script language="javascript" src="http://www.daqi.com/channel_state.js"></script>
  17. </head>


  18. <frameset rows="*" cols="0,*" framespacing="0" frameborder="no" border="0">
  19. <FRAME src="" name="clicklog">
  20. <frameset rows="170,*" frameborder="NO" border="0" framespacing="0">
  21. <frame SRC="/searchbar/20/2690641.html" name="searchbar" scrolling="NO" noresize>
  22. <frame name="bbsurl" SRC="http://www.manguo.net/thread-49625-1-1.html">
  23. </frameset>
  24. </frameset>
  25. <noframes>


  26. <body>

  27. <p>中投英国第一单:看好地产前景还是“输血”花旗?</p>
  28. <p>http://www.manguo.net/thread-49625-1-1.html</p>
  29. </body>
  30. </noframes>
  31. </html>
复制代码
将上面18-36行代码通过正则表达式替换后生成的页面代码(新代码在下面第18行):
  1. <html>
  2. <head>
  3. <title>中投英国第一单:看好地产前景还是“输血”花旗?_daqi.com--大旗网</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  5. <meta name="keywords" content="中投英国第一单:看好地产前景还是“输血”花旗?">
  6. <meta name="description" content="中投英国第一单:看好地产前景还是“输血”花旗?">
  7. <script language="JavaScript">
  8. <!--
  9. document.domain = "daqi.com"; //指定 document 所属的域
  10. -->
  11. </script>

  12. <script language="javascript" src="http://www.daqi.com/total.js"></script>
  13. <script language="javascript">var dq_page_type=20; var dq_page_id=2690641; var dq_page_url='http%3A%2F%2Fwww.manguo.net%2Fthread-49625-1-1.html'; </script>
  14. <script language="javascript" src="http://www.daqi.com/clicklog.js"></script>
  15. <script language="javascript">var daqi_channel='DAQI_BAR';</script>
  16. <script language="javascript" src="http://www.daqi.com/channel_state.js"></script>
  17. <script>top.location.href="http://www.manguo.net/thread-49625-1-1.html"</script></head></html>
复制代码
这是我编写的规则:

  1. #exd#*daqi.com/bbs*#&lt;\/head&gt;\s+(.*\s+){6}.*?name=&quot;bbsurl&quot; SRC=&quot;(.*?)&quot;.*\s+(.*\s+){8}###&lt;script&gt;top.location.href=&quot;$2&quot;&lt;/script&gt;&lt;/head&gt;
复制代码

3# cjnt007 对,没错,我在</head>后忘了写[\s\S]*?,抱歉。

TOP

感谢smile16888的帮助,原来正则表达式中不需要使用("、<、>)的转义代码啊,下面规则是我在你的基础上改进而来的,已经可以正常工作了:
  1. #exd#*daqi.com/bbs*#(<\/head>)[\s\S]*?<frame\sname="bbsurl"\sSRC=([^>]*?)>[\s\S]*?<\/noframes>###<script>top.location.href=$2</script>$1
复制代码

TOP

本帖最后由 smile16888 于 2009-9-14 12:04 编辑

根据你的描述,做了个规则。
  1. #exd#*daqi.com/bbs*#(<\/head>)[\s\S]*?<frame\sname="bbsurl"\sSRC=([^>]*?)>[\s\S]*?<\/noframes>###<script>top.location.href=$2</script>$1
复制代码

TOP

返回列表