分数不够再给-求解决难题

sady1983 2006-04-12 10:36:44
因为怕自己说明的不够详细,这里又不能贴图,所以我把详细的问题说明写到BLOG上,希望那位高手帮小弟解决下,分数不够我再送:
问题详细说明地址:
http://www.blogok.net/blogger2/sady/101268.shtml
小弟先谢过了!
...全文
194 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sady1983 2006-04-13
  • 打赏
  • 举报
回复
to:yuwenge(活得痛快)
我的邮箱地址是:beyondwm1983@163.com
解决了就结贴,谢谢,分数还可以再给
sady1983 2006-04-13
  • 打赏
  • 举报
回复
不好意思,昨天晚上断网了!
第一步提取,我已经实现了,包括主题问题,标题,URL,现在关键的是怎么样来实现第二步,第三步的提取,
下面是我提取 URL的代码:
------------------------------------------------------------------------------------
private void GetLinksThree(string code)
{
this.GetResult(code);//获取在线网页源代码
System.Text.RegularExpressions.Regex ls =
new System.Text.RegularExpressions.Regex(@"\<td class=title14(?<objPerson>[^\]]*)\<td width=1 bgcolor=#747474 rowspan=2\>");//删除相关链接以外的内容 System.Text.RegularExpressions.MatchCollection mclk;
mclk = ls.Matches(code);
for(int i = 0; i < mclk.Count; i++)
{
string strValue = mclk[i].Groups["objPerson"].ToString(); //这里是相关链接内容,一个Table,包含其他源码

System.Text.RegularExpressions.Regex reg = new Regex(@"\<a[^>]+href=\s*(?:'(?<href>[^']+)'|""(?<href>[^""]+)""|(?<href>[^>\s]+))\s*[^>]*>(?<text>.*?)\<\/a\>", RegexOptions.IgnoreCase);//获取里面的url地址
MatchCollection ms = reg.Matches(strValue);
foreach(Match m in ms)
{
string strHead = m.Groups["text"].Value;//url相对应的文本
string strBody = m.Groups["href"].Value;//url地址
ListViewItem item = this.listView1.Items.Insert(0, this.tbTitle.Text);//目标地址的文本主题,放到第二层的listview1的第一列
item.SubItems.AddRange(new String[] { strHead, strBody });//url对应的文本,和url地址放到listview1的第二,第三列
}
}
}
------------------------------------------
下面是我采集,主题信息的代码:
------------------------------------------
//把内容取出,显示出来sina
private void GetResult(string code)
{
//采集标题

System.Text.RegularExpressions.Regex til =
new System.Text.RegularExpressions.Regex(@"\<th class=f24\>(?<objPerson>[^\]]*)\<\/th\>");
System.Text.RegularExpressions.MatchCollection mct;
mct = til.Matches(code);
for(int i = 0; i < mct.Count; i++)
{
string strValue = mct[i].Groups["objPerson"].ToString();
//this.textBox2.Text = strValue;
this.tbTitle.Text = this.StripHTML(strValue);
}
//采集来源信息;
System.Text.RegularExpressions.Regex c =
new System.Text.RegularExpressions.Regex(@"\<td height=20 align=center\>(?<objPerson>[^\]]*)\<td height=15\>");;
System.Text.RegularExpressions.MatchCollection mcc;
mcc = c.Matches(code);
for(int i = 0; i < mcc.Count; i++)
{
string strValue = mcc[i].Groups["objPerson"].ToString();
//this.textBox2.Text = strValue;
this.tbFrom.Text = this.StripHTML(strValue);
}
//采集主题信息;
System.Text.RegularExpressions.Regex r =
new System.Text.RegularExpressions.Regex(@"\<div id=article\>(?<objPerson>[^\]]*)\<br clear=all\>");
System.Text.RegularExpressions.MatchCollection mc;
mc = r.Matches(code);
for(int i = 0; i < mc.Count; i++)
{
string strValue = mc[i].Groups["objPerson"].ToString();

this.tBTxt.Text = this.StripHTML(strValue);
}
this.tbDate.Text = DateTime.Now.ToString();
DgOperator.infoData(this.tbTitle.Text,this.tbFrom.Text,this.tBTxt.Text,this.tbDate.Text);//存入数据库

}

我是初学者,代码写的很乱,不好意思。
sweig0721 2006-04-13
  • 打赏
  • 举报
回复
sweig0721@etang.com
也給我發一點,學習學習!
卧_槽 2006-04-13
  • 打赏
  • 举报
回复
做过类似的东东,代码在家里,回去再发给你。晚点结贴
Knight94 2006-04-13
  • 打赏
  • 举报
回复
呵呵
我好久以前的公司,就做过类似的软件,关键所在就是如何分析html内容,抽出自己想要得。
现在用.net的正则式可能要方便些,但是有很多细节要处理,不是一句两句能说得清楚。
RUN_ 2006-04-13
  • 打赏
  • 举报
回复
UP
lovewebphp 2006-04-13
  • 打赏
  • 举报
回复
up
lovewebphp 2006-04-13
  • 打赏
  • 举报
回复
UP
sady1983 2006-04-13
  • 打赏
  • 举报
回复
怎么没有动静了啊!大虾们帮帮忙啊!
Bi11gates9999 2006-04-13
  • 打赏
  • 举报
回复
用正则提取 a href啊, 我没懂
sady1983 2006-04-12
  • 打赏
  • 举报
回复
要是那位能在线指导的,小弟的QQ号码是:120537340

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧