Re: [問題] 傳值給網頁 & 抓網頁資料

看板C_Sharp (C#)作者 (有學問的孟孟)時間18年前 (2007/07/14 20:00), 編輯推噓4(403)
留言7則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

07/14 20:25, , 1F
感謝..原來不是"using system.web"就行了 ....
07/14 20:25, 1F

07/14 20:27, , 2F
最後面的input我還是解讀不能@@" 畢竟不是自己的程式碼呀...XD
07/14 20:27, 2F

07/14 20:40, , 3F
不過現在有個問題是..回傳的原始碼太了..裡面雖然有我要的
07/14 20:40, 3F

07/14 20:41, , 4F
翻譯結果..請問我該如何只選到結果來表示呢?
07/14 20:41, 4F

07/14 20:42, , 5F
目前知道他的結果,前後都會有固定的html碼夾住
07/14 20:42, 5F

07/14 20:47, , 6F
啊...看到他本身的解決方法了...
07/14 20:47, 6F

07/14 21:24, , 7F
可以用Regex類別
07/14 21:24, 7F
文章代碼(AID): #16cBhUkQ (C_Sharp)
文章代碼(AID): #16cBhUkQ (C_Sharp)