标题:怎样用C#截取网页的某一块的文字?(已解决)
只看楼主
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
结帖率:66.67%
 问题点数:0 回复次数:14 
怎样用C#截取网页的某一块的文字?(已解决)
http://www.go108.com.cn/go108_daystar.php?starname=7


感谢chenjin145帮忙



源代码:

rMnFrqk5.rar (93.39 KB) 怎样用C#截取网页的某一块的文字?(已解决)




[此贴子已经被作者于2006-9-2 15:49:50编辑过]

搜索更多相关主题的帖子: 网页 文字 daystar php 
2006-08-21 18:48
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
不跟平常處理一樣?
有甚麼難度?

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-22 13:00
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
你能说说平常是怎么处理的吗?

例如你怎么从下面这些字符里面把我要的挑出来??

" <td align="left" valign="middle" class="style2">
<p align='center'><img src='2006images/7.gif'></p><div align='right'><a href='http://www.go108.com.cn/xuanchuan/free_chanpin_list.html' target='_blank' class='STYLE5'>更多运势</a> &nbsp;&nbsp;<a href='email_edm_input.php' target='_blank' class='STYLE5'>订阅运势</a></div><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><p align='center'><a href='go108_daystar.php?starname=7&page=2' class='STYLE2'>下一页</a></p><div align='right'><a href='go108_weekstar.php?weekstar=6' class='STYLE5'>每周运程</a></div><div align='right'><a href='go108_monthstar.php?montstar=7' class='STYLE5'>每月运程</a></div><div align='right'><a href='go108_yearstar.php?yearstar=6' class='STYLE5'>06年运程</a></div> </td>
"
2006-08-22 13:10
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
竊取條件說

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-22 13:47
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
<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>


2006年8月22日
总运指数:★★★☆☆
有桃花运
真情告白:今天会有桃花送上门来,对方比较主动,你也应该热情主动一些,小心因为太摆架子,而错过一段好姻缘喔。
今日适合:约会
有月老为你牵红线,就来场浪漫的约会吧,脸上挂上你那迷人的微笑就能深深地吸引对方,今天将会让你感到无比的幸福与满足!



以前有个截取天气的,我现在找不回来了

[此贴子已经被作者于2006-8-22 13:57:29编辑过]

2006-08-22 13:56
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 

<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>


這一段的格式固定麼?


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-22 14:00
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
[CODE]string str="<br>2006年8月22日<br>总运指数:<span class='STYLE3'>★★★☆☆</span><br>";
str+="<span class='STYLE4'>有桃花运</span><br>真情告白:<span class='STYLE4'>今天会有桃花送上门来,对方比较主动,你也应该热情主动一些,小心因为太摆架子,而错过一段好姻缘喔。</span><br>今日适合:<span class='STYLE4'>约会</span><br> <span class='STYLE4'>有月老为你牵红线,就来场浪漫的约会吧,脸上挂上你那迷人的微笑就能深深地吸引对方,今天将会让你感到无比的幸福与满足!</span>";
string[] strs=str.Split(new char[]{'<','>'});
for(int i=0;i<strs.Length;i++)
{
if(strs[i].IndexOf("br")>-1)
Console.Write("\n");
else if(strs[i].IndexOf("span")>-1)
{
}
else
{
Console.Write(strs[i]);
}
}[/CODE]

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-22 14:10
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
Sorry, 说漏了,要在那个页面先找出这段代码, 然后再解出来,

谢谢你上面的代码...
2006-08-22 15:33
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 

只要過濾條件固定還是可以做到的

不固定 理論上來講 也還是可以做到的


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-22 15:53
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 

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编辑过]

2006-08-23 13:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-85309-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089037 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved