感谢chenjin145帮忙
源代码:
[此贴子已经被作者于2006-9-2 15:49:50编辑过]
[此贴子已经被作者于2006-9-2 15:49:50编辑过]
[此贴子已经被作者于2006-8-22 13:57:29编辑过]
<br>2006年8月22日<br>总运指数:<span class='STYLE3'>★★★☆☆</span><br> <span class='STYLE4'>有桃花运</span><br>真情告白:<span class='STYLE4'>今天会有桃花送上门来,对方比较主动,你也应该热情主动一些,小心因为太摆架子,而错过一段好姻缘喔。</span><br>今日适合:<span class='STYLE4'>约会</span><br> <span class='STYLE4'>有月老为你牵红线,就来场浪漫的约会吧,脸上挂上你那迷人的微笑就能深深地吸引对方,今天将会让你感到无比的幸福与满足!</span>
這一段的格式固定麼?
只要過濾條件固定還是可以做到的
不固定 理論上來講 也還是可以做到的
string firstPage = "http://www.go108.com.cn/go108_daystar.php?starname=7";
//string secondPage = "http://www.go108.com.cn/go108_daystar.php?starname=7&page=2";
try
{
WebClient astoWebClient = new WebClient();
//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。
astoWebClient.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = astoWebClient.DownloadData(firstPage);//从指定网站下载数据
string pageHtml = Encoding.Default.GetString(pageData); //获取的网站页面采用的是GB2312格式
//string pageHtml = Encoding.UTF8.GetString(pageData); //获取的网站页面采用的是UTF-8格式
pageHtml = pageHtml.Trim(); //先去掉头部多余的空格
int m = pageHtml.IndexOf("订阅运势"); //找出"订阅运势"的位置
string pageText = pageHtml.Remove(0, m+18); //删除"订阅位置"以上的html文本
int n = pageText.IndexOf("下一页"); //找出"下一页"的位置
string keyText = pageText.Remove(n-86); //删除"下一页"以下的html文本
//利用Split方法把关键html文本分开成字符串数组
string[] strs = keyText.Split(new char[] { '<', '>' }); //char spliter[] = { '<', '>' };
for(int i = 0; i<strs.Length; i++)
{
//MessageBox.Show(strs[i]);
if(strs[i]==" ") //删除<br> <span class='STYLE4'>之间多余的空格
continue;
if(strs[i].IndexOf("br") > -1) //遇到br就换行
{
richTextBox1.AppendText("\n");
}
else
{
if(strs[i].IndexOf("span") > -1) //遇到span不处理
{
}
else
{
richTextBox1.AppendText(strs[i]); //输出关键的文本
}
}
}
/*
using(StreamWriter sw = new StreamWriter("f:\\ouput.html")) //将获取的内容写入文本
{
sw.Write(pageHtml);
}
*/
}
catch(WebException webEx)
{
MessageBox.Show(webEx.ToString());
}
[此贴子已经被作者于2006-8-23 14:13:03编辑过]