Open elleryq opened 8 years ago
@elleryq 目前看起來沒有辦法,他會很嚴格的先去認 cookie
@toomore 謝謝回覆~ 所以你另外一個用 go 寫的工具也有一樣的問題,對嗎?
大概是從兩周前 左右吧就開始出現錯誤 ,先是"錯誤 120", 再來是 http://1.1.1.1 錯誤,還未深入了解, 只是 就狀況來看 之前像是 此 API 用某種方式去辨認 request 來源(cookie ?) 若不是 它認可的 即回覆錯誤! 現在看起來像是 一種 re-direct 的手法 ...., 看來真是蠻難解的 ,若有興趣 可以一起研究
@elleryq @earxx
他需要到頁面取得 cookie,即使取到 cookie 後訪問個股,也都需要先到個股的頁面後他的 API 才會吐回資料。同時間訪問太多股票 cookie 裡的 JSESSIONID
會失效,而訪問的 IP 也會被擋,目前測試後的狀況。即時資訊的部分暫時都無法使用。
我另外一個用 Go 寫的也是都一樣的問題 https://github.com/toomore/gogrs/compare/realtime
@toomore "需要先到個股的頁面後他的 API 才會吐回資料", 那就乾脆 parsing 它的個股的頁面算了 ! 我是自己用java改寫的 , 最近 我公事忙,並回鍋玩d3^^ , 時間比較少,過幾天 我先改寫一版看看, performance 一定 比Call API 差 ,但最近API 改版好像比 網頁改版還頻繁 (上回加了 time stamp) ,目前 好像也沒更好的方法, 對了 我是有塞資料庫的!
@earxx 沒有那麼簡單,他整個頁面都是用 API 取值,在當下是沒有任何資料的。
對的! 經您一提 我去看了,真的是 如您所言,看來得學習 所有 瀏覽器的 行為,包含訪問網址,cookie ,session, 再去call API, ..等等....恐怕真是不好弄的...也許還得學他的 延遲 query.. .
唉唉,頭痛啊!!!
@toomore 朋友給我這個網址 http://www.coco-in.net/thread-41032-1-1.html 裏面有段 python 程式,他是用 requests.session() + header ,然後就可以抓到了~
好久沒動這個,這幾天又修改一下我的程式 先get 到首頁的 cookie ,複製到query 的 http client 就可以 用 api 來查. 只是 有時 查太多次之後 還是 會 出現 Tried to open a foreign host with url: http://1.1.1.X 請問各位有沒有這個問題呢? 我現在是 想說 就處理這個 exception ,重新(到首頁再取 cookie )來過 就是了 如果暫時被封了 也只有幾分鐘 ,反正就是試到完成.... 有其他的建議嗎? 謝謝
大約從 6 月開始,都會丟出 exception :Tried to open a foreign host with url: http://1.1.1.1
使用 wget/curl 也同樣會有一樣的問題,我想這是 mis.tse.com.tw 問題。 不知道有沒有方法可以避過。