你要获取class=source的p标签? 你的正则里指定了class=sms当然会返回第一个 string s = File.ReadAllText(Server.MapPath("TextFile.txt")); int i = 0; Regex reg = new Regex(@"(?is)<p[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p).)*)"); foreach (Match m in reg.Matches(s)) { i++; if (i == 2) Response.Write(m.Groups["content"].Value); }
如果是要获取class=source的p标签里的内容的话 string s = File.ReadAllText(Server.MapPath("TextFile.txt")); Regex reg = new Regex(@"(?is)<p[^>]*?class=""source""[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p).)*)"); foreach (Match m in reg.Matches(s)) { Response.Write(m.Groups["content"].Value); }
不好意思 刚看错,是要取第一个p,可是取出来的是第二个,我看反了 string s = File.ReadAllText(Server.MapPath("TextFile.txt")); Regex reg = new Regex(@"(?is)<p[^>]*?class=""sms""[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p).)*)"); foreach (Match m in reg.Matches(s)) { Response.Write(m.Groups["content"].Value); }
/* 这样获取到的是class="sms"的p标签,我在这个http://q.t.sina.com.cn/717867网上对了下 内容是一样的啊,哪里有问题呢? */ HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create("http://q.t.sina.com.cn/717867"); HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse(); if (webresponse.StatusCode == HttpStatusCode.OK) { using (StreamReader dr = new StreamReader(webresponse.GetResponseStream())) { string result = dr.ReadToEnd(); Regex reg = new Regex(@"(?is)<p[^>]*?class=""sms""[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p>).)*)"); foreach (Match m in reg.Matches(result)) { Response.Write(m.Groups["content"].Value); Response.Write("===========================================<br/><br/><br/><br/>"); } } }
Ok!string str=@"(?si)<p class=""sms"" [^:]+:(?<content>(\w|\W)*?)</p>"; Regex regex = new Regex(str); Match mc = regex.Match(html); if (mc.Success) return mc.Groups[ "content"].Value;
你的正则里指定了class=sms当然会返回第一个
string s = File.ReadAllText(Server.MapPath("TextFile.txt"));
int i = 0;
Regex reg = new Regex(@"(?is)<p[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p).)*)");
foreach (Match m in reg.Matches(s))
{
i++;
if (i == 2)
Response.Write(m.Groups["content"].Value);
}
string s = File.ReadAllText(Server.MapPath("TextFile.txt"));
Regex reg = new Regex(@"(?is)<p[^>]*?class=""source""[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p).)*)");
foreach (Match m in reg.Matches(s))
{
Response.Write(m.Groups["content"].Value);
}
<p class=\042sms\042(?<html>[\s\S]+?)</p> 这个可以达到lz的需求吗?
这句读出来的就是你提供的html标签,我直接扔到txt里然后读出来。
string s = File.ReadAllText(Server.MapPath("TextFile.txt"));
Regex reg = new Regex(@"(?is)<p[^>]*?class=""sms""[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p).)*)");
foreach (Match m in reg.Matches(s))
{
Response.Write(m.Groups["content"].Value);
}
不过上午一打开的时 发现 连网页的主要内容都匹配不出来了 真是立马无语啊
这个是要抓取数据的网站
http://q.t.sina.com.cn/717867
他里面的微博是用ul标签里循环li标签显示出来的
现在连每个li到匹配获取不到了 不知道是不是网站昨晚改版了 还是怎么的
希望 有时间的朋友帮帮忙 看看
lz要获取第一个p,也就是class='sms'的
/*
这样获取到的是class="sms"的p标签,我在这个http://q.t.sina.com.cn/717867网上对了下
内容是一样的啊,哪里有问题呢?
*/
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create("http://q.t.sina.com.cn/717867");
HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse();
if (webresponse.StatusCode == HttpStatusCode.OK)
{
using (StreamReader dr = new StreamReader(webresponse.GetResponseStream()))
{
string result = dr.ReadToEnd();
Regex reg = new Regex(@"(?is)<p[^>]*?class=""sms""[^>]*?mid=(['""\s]?)[^'""\s]+\1[^>]*?type=(['""\s]?)[^'""\s]+\2[^>]*?>(?<content>((?!</?p>).)*)");
foreach (Match m in reg.Matches(result))
{
Response.Write(m.Groups["content"].Value);
Response.Write("===========================================<br/><br/><br/><br/>");
}
}
}
Regex regex = new Regex(str);
Match mc = regex.Match(html);
if (mc.Success)
return mc.Groups[ "content"].Value;
之前的获取循序是
先获取页面->所有的li标签 存入list中-> 在单独从li里面 匹配获取用户名,用户头像,微博内容等
今天发现程序获取不到页面中的li标签了 不知道什么原因. . .
想请你帮帮忙 对于正则我连.*?都不会用. . .
这个来匹配的 现在怎么样都匹配不到了 唉 头发了抓掉了n根