注册 登录
编程论坛 ASP.NET技术论坛

求助:调用百度搜索引擎

notlook 发布于 2010-08-03 17:04, 1519 次点击
程序代码:
protected void Button1_Click(object sender, EventArgs e)
    {
        string wd = TextBox1.Text.Trim();
        wd = HttpUtility.UrlEncode(wd, Encoding.Default);
        WebRequest wrq = WebRequest.Create("http://www.baidu.com/s?wd= " + wd + "&cl=3 ");
        WebResponse wrs = wrq.GetResponse();
        Stream strm = wrs.GetResponseStream();
        StreamReader sr = new StreamReader(strm, System.Text.Encoding.GetEncoding("gb2312"));

        string allstrm;
        allstrm = sr.ReadToEnd();

        Response.Write(allstrm);
        strm.Close();
    }
以上这段是调用百度搜索 引擎的代码,不过这个是在本页面打开的,现在我想实现跳转新页面打开 不知道怎么实现....

各位大侠 帮帮忙....先谢谢了....
14 回复
#2
冰镇柠檬汁儿2010-08-04 09:12
Response.Redirect("http://www.baidu.com/s?wd= " + wd + "&cl=3 ", true);
用这样的方式不行吗?
#3
bygg2010-08-04 09:35
没找到。
不过你的wrq和sr没有关闭。
#4
冰镇柠檬汁儿2010-08-04 09:49
欧阳,你用过楼主这样的方式吗?我第一次见到,觉得有点莫名其妙,教教我呗
#5
bygg2010-08-04 09:59
去看一下WebRequest 及相关吧。
其实LZ的意思就是通过这个程序,抓取通过baidu搜索出来的所有页面地址及信息。
就如同你在baidu中随意搜索一些东西,展现出来的那个页面中的所有内容,都可以用这个程序抓下来,呵呵。

其实这个东西,用于网络数据收集比较适合,呵呵。
#6
冰镇柠檬汁儿2010-08-04 10:05
哦,呵呵,8错
#7
notlook2010-08-04 11:20
string wd = TextBox1.Text.Trim();
        Response.Write("<script>window.open('http://www.baidu.com/s?wd= " + wd + "&cl=3')</script>");
这样子可以跳转到新页面,-----搜索英文的时候是正常的,但是搜索中文的内容的时候就会出现乱码,这是什么原因啊...
#8
bygg2010-08-04 11:58
编码用utf-8
#9
notlook2010-08-04 13:12
回复 8楼 bygg
我知道用utf-8 啊,问题是我不知道加在什么地方啊....
#10
bygg2010-08-04 13:32
Encoding.Default  ===>>  utf-8
#11
bygg2010-08-04 13:33
或者是wd = HttpUtility.UrlEncode(wd);
#12
notlook2010-08-04 13:48
string wd = TextBox1.Text.Trim();
        wd = HttpUtility.UrlEncode(wd, Encoding.Default);
        Response.Write("<script>window.open('http://www.baidu.com/s?wd= " + wd + "&cl=3')</script>");
这样子就好了....谢谢大家了....
#13
bygg2010-08-04 15:08
晕,那你的抓取数据写在哪里的?
#14
冰镇柠檬汁儿2010-08-04 17:48
楼主太猛了
#15
cxwl3sxl2010-08-08 10:50
楼主的方法中调用了一句Response.Write(allstrm);所以是在当前页面打开的
1