[問題] 讀取網頁遭遇404 not found

看板Python作者 (咖啡季節)時間13年前 (2012/09/05 19:16), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
請問關於一個抓取網頁的情況,不知道該如何解決, 我想抓證交所上面的股票資料, 所以批次去抓, 過程中會遭遇某些網頁在抓取的時候出現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

09/05 21:05, , 1F
老實說我看不太懂
09/05 21:05, 1F

09/05 21:06, , 2F
另外你要抓個股資料的話,可以找有API的券商開戶
09/05 21:06, 2F

09/05 21:06, , 3F
用API又快又穩,也短期存取某些網站超過次數就會被block
09/05 21:06, 3F

09/05 21:07, , 4F
不會像
09/05 21:07, 4F
※ 編輯: xlp 來自: 220.134.15.126 (09/05 21:07)

09/05 21:09, , 5F
主要問題就是 網頁如果沒有事先讀過 透過urllib抓取都會404
09/05 21:09, 5F

09/05 21:09, , 6F
還是謝謝回應 感謝
09/05 21:09, 6F

09/05 21:39, , 7F
我也是有讓它每天都去證交期交所抓,不過沒這問題耶
09/05 21:39, 7F
文章代碼(AID): #1GHpIWTf (Python)
文章代碼(AID): #1GHpIWTf (Python)