作者mongsq (有學問的孟孟)
看板C_Sharp
標題Re: [問題] 傳值給網頁 & 抓網頁資料
時間Sat Jul 14 20:00:26 2007
※ 引述《yu1 (~renard~)》之銘言:
: 之前用了反組譯程式看了一個會連到線上翻譯網站的軟體的程式碼
: 不過碰到一些問題想來請教板上先進
: 主要是關於HttpWebRequest和HttpWebResponse的問題
: 以下是程式碼:
: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
: "http://www.excite.co.jp/world/chinese/?before=" +
: System.Web.HttpUtility.UrlEncode(textBox1.Text,
: Encoding.GetEncoding("UTF-8")));
: 這邊碰到的問題就是
: 1. HttpUtility他說"System.Web"中沒有型別或命名空間名稱"HttpUtility"
: <想要自己拿來編譯時>
要在專案裡加入System.Web的參考
: 接下來:
: HttpWebResponse response = (HttpWebResponse)request.GetResponse();
: StreamReader reader = new StreamReader(response.GetResponseStream()
: , Encoding.GetEncoding("UTF-8"));
: string input = http://www.excite.co.jp/world/chinese/?before=
: + HttpUtility.UrlEncode("使用者輸入的單字",
: Encoding.GetEncoding("UTF-8")) + "\n" + reader.ReadLine();
: reader.Close();
: return input;
: 而這邊碰到的問題是
: 2. 這裡的GetResponse()拿到的到底是什麼東西呢?
: 據MSDN說是一串String,不過是全部的網頁原始碼呢..還是..??
GetResponse()拿到的是WebResponse物件
使用這個物件的GetResponseStream()可以拿到一個資料流
再用StreamReader的ReadToEnd()就可以拿到該網頁的原始碼(String)
: 3. 延續上面...這邊reader.ReadLine()的作用
: 自目前資料流讀取一行字元,並將資料以字串傳回。<by MSDN>
: 可是網頁資料那麼多,怎麼知道那一行是我要的結果呢?
一行應該就是遇到\n時算一行
: 4. 看不太懂他的input要存的是什麼?
: 也就是input那後面一串的結果會是什麼?
這裡看的不是很懂@@
: --------------------------
: 煩請各位先進不吝指教,感謝 :)
以上可能會有錯誤@@
敬請見諒
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.142.153.242
推 yu1:感謝..原來不是"using system.web"就行了 .... 07/14 20:25
→ yu1:最後面的input我還是解讀不能@@" 畢竟不是自己的程式碼呀...XD 07/14 20:27
推 yu1:不過現在有個問題是..回傳的原始碼太了..裡面雖然有我要的 07/14 20:40
→ yu1:翻譯結果..請問我該如何只選到結果來表示呢? 07/14 20:41
→ yu1:目前知道他的結果,前後都會有固定的html碼夾住 07/14 20:42
推 yu1:啊...看到他本身的解決方法了... 07/14 20:47
推 mongsq:可以用Regex類別 07/14 21:24