【发布时间】:2013-12-26 03:36:27
【问题描述】:
我正在使用以下代码行下载网页,
WebRequest request = WebRequest.Create(strURL);
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
然后我从这里提取身体部位如下:
int nBodyStart = downloadString.IndexOf("<body");
int nBodyEnd = downloadString.LastIndexOf("</body>");
String strBody = downloadString.Substring(nBodyStart, (nBodyEnd - nBodyStart + 7));
现在我想删除正文部分的所有 javascript,我该怎么做?
我的目标是获取网页的唯一内容。但由于每个页面可能有不同的方法,所以我试图删除任何 js 标签,然后使用下面的 RegEx 删除任何 HTML 标签
Regex.Replace(strBody, @"<[^>]+>| ", "").Trim();
但是我不知道怎么去掉script标签之间的js,因为脚本可能是多行也可能是单行。
提前致谢。
【问题讨论】:
-
任何时候出现 html 的正则表达式解析......这篇文章总是值得一读stackoverflow.com/questions/1732348/…
-
@GrantWinney 我尝试使用它。但即使我的 URL 有 242 个字符,它也会抛出以下异常:指定的路径、文件名或两者都太长。完全限定文件名必须少于 260 个字符,目录名必须少于 248 个字符。
标签: c# javascript html regex