[問題] requests with open write下載檔案錯誤

看板Python作者 (wario2014)時間2天前 (), 編輯推噓1(1018)
留言19則, 3人參與, 9小時前最新討論串1/1
大家好新手發問 程式碼 import requests url = "https://www.sec.gov/Archives/edgar/data/320193/000032019320000096\ /aapl-20200926_htm.xml" r = requests.get(url, timeout=(60, 60)) with open('A:/aapl-20200926_htm.xml', 'wt', encoding="utf-8") as f: f.write(r.text) f.close() r.close() 我想在sec網站下載資料檔案,但是光是這個單一連結,我執行十次,就有二,三次會 變成只有5KB的檔案,每次手動執行都有間隔相當時間避開request限制 https://i.stack.imgur.com/hBKiL.jpg 我在RAM disk,USB 都試過,timeout加大變小,都會發生 環境是vs code , python 3.8 請問是哪裡沒弄好,先謝謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.164.160 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1617910127.A.D16.html
2天前
看一下失敗時的內容吧
04/09 04:58, 1F

2天前
5~6KB那個頁面就是說你被擋了
04/09 05:04, 2F


2天前
timeout是伺服器沒回應時等多久
04/09 05:28, 4F

2天前
可是python 沒有跳錯誤訊息,被擋應該會403不是嗎
04/09 05:30, 5F

2天前
而且它這每秒十個規則,我遠遠超過十秒二十秒我都試過
04/09 05:32, 6F

2天前
因為沒有錯誤 只是回傳的不是你要的檔案是這個網頁
04/09 05:52, 7F

2天前
你加一條 print(r.text) 看資料就知道了
04/09 05:53, 8F

2天前
嗯,的確是403,印了status code,我了解了,謝謝你
04/09 05:57, 9F

2天前
看來sec實際的限制嚴格許多,估計一分鐘只能下兩次
04/09 05:59, 10F

2天前
試試 https://www.data.gov/ 有沒有你要的資料
04/09 06:06, 11F

2天前
感謝,我找找,另外403文擋裡有寫declare your traffic
04/09 06:24, 12F

2天前
by update user agent to include company info
04/09 06:25, 13F

2天前
隨便亂寫也行得通嗎,感覺沒這麼容易
04/09 06:26, 14F

14小時前
可以參閱證監會的爬蟲policy
04/10 18:10, 15F

14小時前

10小時前
感謝,持續吸收中,當中的"disallow" /cgi-bin可以理解
04/10 22:28, 17F

9小時前
成(連結略)/cgi-bin/browse-edgar?CIK=0000320193這種
04/10 22:30, 18F

9小時前
讓browser走的路徑,是不適合script用的,對嗎 ?
04/10 22:31, 19F