看板 Python 關於我們 聯絡資訊
請問關於一個抓取網頁的情況,不知道該如何解決, 我想抓證交所上面的股票資料, 所以批次去抓, 過程中會遭遇某些網頁在抓取的時候出現404 not found的情況, 我有把他的連結print出來看是正確的, 但是抓取網頁時有反應404訊息的部份, 直接點選連結透過瀏覽器打開也會失敗而找不到網頁。 舉個例子來講: "假設"下面這個網頁本來是打不開的(即程式抓取時反應404情況的網頁): http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY_AVG/ genpage/Report201208/201208_F3_1_8_5203.php?STK_NO=5203&myear=2012&mmon=02 此時只要透過瀏覽器回到選取股票的頁面: http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY_AVG/STOCK_DAY_AVGMAIN.php 再輸入對應的代碼5203 會得到跟上面例子一樣的連結然後"成功"開啟網頁,經過這次的成功開啟網頁之後, 程式跑到原本會遭遇404 error的情況,就不會再出現error, 但是因為我可能遭遇到300個左右的404 error,不太可能一個一個去開, 不知道是否有針對這個case的處理方式呢? 片段code如下: site=http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY_AVG/genpage/ Report201208/201208_F3_1_8_5203.php?STK_NO=5203&myear=2012&mmon=02 httplib.HTTPConnection.debuglevel = 1 opener = urllib2.build_opener() opener.addheaders = [('User-agent', 'Mozilla/5.0')] content = opener.open(site).read() #這邊會遭遇404 error 我後來用twisted的方式去讀也是一樣的情況, 一定要自己從輸入代碼的地方打開過連結一次之後,程式才會正確運作。 還請大家賜教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.15.126
cobrasgo:老實說我看不太懂 09/05 21:05
cobrasgo:另外你要抓個股資料的話,可以找有API的券商開戶 09/05 21:06
cobrasgo:用API又快又穩,也短期存取某些網站超過次數就會被block 09/05 21:06
cobrasgo: 不會像 09/05 21:07
※ 編輯: xlp 來自: 220.134.15.126 (09/05 21:07)
xlp:主要問題就是 網頁如果沒有事先讀過 透過urllib抓取都會404 09/05 21:09
xlp:還是謝謝回應 感謝 09/05 21:09
cobrasgo:我也是有讓它每天都去證交期交所抓,不過沒這問題耶 09/05 21:39