Re: [請益] curl這網站參數的問題

看板PHP作者 (小企鵝)時間12年前 (2012/03/31 18:12), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
※ 引述《jami520 (我的生命因你而發光)》之銘言: : 各位好,想跟各位請教一下以下?這網站網址參數部分非固定式的 : 這是利用什麼機制的保護動作呢? 是否有高手知道破解之道? : 因為還有其他商品要做curl,不過網址不固定就沒辦法做動作了 : 例如: 商品 IIX EG .... : http://www.quotemedia.com/results.php?qm_page=4033&qm_symbol=IIX : 光同商品去點選查詢商品報價,他網址中的qm_page都會不同 : 如果單以改變qm_symbol=EG,網頁中的資料不會是EG,反而是原本的IIX : 所以跟大家請益一下,謝謝 畫面是javascript 產生...位置在app.quotemedia.com 你這個動作都只對www.quotemedia.com作資料抓取~所以才有你的錯覺 $qm_symbol = strtolower("GE"); $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, "http://app.quotemedia.com/quotetools/clientForward?targetURL=http%3A%2F%2Fwww.quotemedia.com%2Fresults.php&targetsym=qm_symbol&targettype=&targetex=&qmpage=true&smartLookup=on&symbol=".$qm_symbol); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7"); $data = array("symbol" => $qm_symbol); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, false); curl_exec($ch); curl_setopt($ch, CURLOPT_URL, "http://app.quotemedia.com/quotetools/quoteModule.go?hiddenTabs=markets_worldIndices&toolWidth=729&advCharts=on&mktsymbols=^DJI&mktsymbols=^NASD&mktsymbols=^SP500&mktsymbols=^NYSE&mktsymbols=^RUO&mktsymbols=^TSX&hiddenTabs=streamer&shownTabs=financials&shownTabs=insiders&shownTabs=earnings&shownTabs=analyst&shownTabs=markets_rates&shownTabs=markets_sectors&shownTabs=markets_futures&shownTabs=markets_ETF&shownTabs=markets_currencies&shownTabs=markets_calendars&shownTabs=markets_IPO&showMenuMkt=on&shownTabs =trades&sector=^XAL&sector=^BKX&sector=^XCI&sector=^BTK&sector=^XFI&sector=^DOT&sector=^XNG&sector=^NWX&sector=^OIX&sector=^XOI&sector=^DRG&sector=^SIS&sector=^RLX&sector=^TXX&sector=^PHN&sector=^UUO&targetURL=http://www.quotemedia.com/results.php&action=showDetailedQuote&webmasterId=500&targetsym=qm_symbol"); $f = curl_exec($ch); file_put_contents("curl.js", $f); curl_close($ch); 這是直接將畫面的javascript抓回存成curl.js 然後寫一個 curl.htm來載入這個curl.js當作畫面顯示 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <head> <body> <script src=curl.js></script> </body> 如果程式碼被bbs截掉~請自行找網頁內的網址再補上.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.25.72

04/01 20:31, , 1F
chaoms大大,真有你的,我查了好幾天都找不出,感謝唷~
04/01 20:31, 1F

04/03 22:43, , 2F
高手快拜..
04/03 22:43, 2F
文章代碼(AID): #1FTjYKuQ (PHP)