close

上星期我跟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&param2=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";

果真,基本功很重要!!!


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 cutepipico 的頭像
    cutepipico

    cutepipico

    cutepipico 發表在 痞客邦 留言(0) 人氣()