上星期我跟momo無聊的賭注,寫一個將其他網站內容讀進來的東西
大概是要將wiki 上面的各國國旗讀取並存檔
我原本的作法是ajaxinclude將被讀取的網頁內容includ到html裡面
用xpath 的方法尋找符合 <a href=XXX>的tag
找到href以後 將url傳給下載檔案的模組 module儲存
這個作法ok!!
但我們原本講好是要用自己熟悉的工具,那我只好用c#
C#使用HttpWebRequest 傳送瀏覽要求給對方
HttpWebRequest.GetReponse()取得對方的回傳資料
讀取對方網頁內容只要用HttpWebResponse.GetResponseStream()就可以啦!!
問題來了有其中一個網頁一直出現403 error
網路上很多人碰到這種問題,但大家的問題來源不一定相同
所以 : google找到的解答不一定適用喔!!
朋友跟我說要從根本解決 : 監測request & response的封包
下載了wireshark 這個封包監控軟體
這真是個很有用的軟體喔以後再介紹
針對有問題的網頁做封包監控,發現是對方傳回param1=value1¶m2=value2HTTP/1.0 403 Forbidden
trace下去發現wiki 傳回msg : Please provide a User-Agent header
挖咧,問題就這麼簡單,加上一行就解決了
HttpWebRequest.UserAgent = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9";
果真,基本功很重要!!!
- Nov 06 Tue 2007 11:38
漫長的debug之路,卻只是個小問題
close
全站熱搜
留言列表