关于获取网页内容的问题!

gjwj 2003-10-20 12:18:46
我写了一个获取网页的程序:
address1="http://www.xxx.com/music/music_lib/singer.asp?name=李克勤";
address1=address1.Replace("李克勤",HttpUtility.UrlEncode("李克勤",System.Text.Encoding.Default));
address1=address1.Replace("singer.asp?",HttpUtility.UrlEncode("singer.asp?",System.Text.Encoding.Default));
zt.Text="系统获取网络数据中..............!";
wreq=WebRequest.Create(address1.ToString());
wresp=(HttpWebResponse)wreq.GetResponse();
s=wresp.GetResponseStream();
StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
while (sLine!=null)
{
sLine = objReader.ReadLine();
if (sLine!=null)
HTML += sLine;
}
的时候能获取过来,但是当我把address1该为=="http://www.xxx.com/music/music_lib/singer.asp?pagenow=2&name=李克勤"
的时候却获取的跟刚才的内容一样,不过我怎么改变pagenow=?的值都和"singer.asp?name=李克勤"和"singer.asp?pagenow=1&name=李克勤"的时候一样.....这是为什么啊?(该页共有5页,不过怎么做都只能获取第一页)
...全文
76 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArLi2003 2003-10-23
  • 打赏
  • 举报
回复
send done, check it
gjwj 2003-10-23
  • 打赏
  • 举报
回复
帮帮忙啊.
gjwj 2003-10-23
  • 打赏
  • 举报
回复
收到了,非常谢谢你!...但是还是无法获取到"http://libweb.iwmusic.com/music/music_lib/singer.asp?pagenow=3&name=李克勤"中的内容,仍然是pagenow=1的内容啊?你试过可以获取到pagenow=3的内容吗?(急啊我,,拜托你了阿利)
而且我发现,如果直接在浏览器的地址栏里输入这个pagenow=3的地址回车,得到的仍然是pagenow=1的内容,只有点几刷新按钮后获取到的内容才是pagenow=3的,是不是在地址栏里回车和点几刷新按钮方式上有不同.
而且点几也面上的page3联结也可以得到正确内容,是不是对方要求也FORM的形式提交pagenow=3的数据,如果是这样,该如何模拟这个提交的动作...........
gjwj 2003-10-22
  • 打赏
  • 举报
回复
这个网站是怎么搞的...你把sURL改成"http://libweb.iwmusic.com/music/music_lib/singer.asp?pagenow=3&name=李克勤"看看肯定html中的内容与浏览器中的内容不一样....这是怎么会事..该怎么解决啊.
ArLi2003 2003-10-22
  • 打赏
  • 举报
回复
是很奇怪。。

换成用 socket 连80 试过是正常的,直接用 HTTP 应答,如果你不会回贴跟上你的邮件地址我发给你。
gjwj 2003-10-22
  • 打赏
  • 举报
回复
谢谢,谢谢!
wj7135974@sina.com
ArLi2003 2003-10-20
  • 打赏
  • 举报
回复
//run at other or unknow codebase(need urlencode), u can try:

string sURL = "http://www.chinamp3.com/hktw/disclist.php?key=李克勤&singer_sex=1";
int startAt = sURL.IndexOf('?');
if (startAt >0) {
sURL = sURL.Substring(0, startAt+1) + System.Web.HttpUtility.UrlEncode(sURL.Substring(startAt +1));
}

System.Net.WebClient wc = new System.Net.WebClient();
byte[] htmlBody = wc.DownloadData(sURL);

string html = System.Text.Encoding.GetEncoding("GB2312").GetString(htmlBody);
ArLi2003 2003-10-20
  • 打赏
  • 举报
回复
string sURL = "http://www.chinamp3.com/hktw/disclist.php?key=李克勤&singer_sex=1";

System.Net.WebClient wc = new System.Net.WebClient();
byte[] htmlBody = wc.DownloadData(sURL);

string html = System.Text.Encoding.GetEncoding("GB2312").GetString(htmlBody);
开心就好 2003-10-20
  • 打赏
  • 举报
回复
这个问题没有具体的环境很难回答的。
就你所说的应该没有什么大问题,其实UrlEncode你完全可以对整个URL字符串的,而不必使用Replace了,没有这么麻烦。
gjwj 2003-10-20
  • 打赏
  • 举报
回复
帮帮忙啊.............拜托了!!!!大家!!!!
gjwj 2003-10-20
  • 打赏
  • 举报
回复
有人理我吗?

110,502

社区成员

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

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

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