[問題] 台灣證券交易所爬蟲

看板Python作者 (Poker Face)時間3年前 (2020/10/09 15:52), 編輯推噓4(5137)
留言43則, 9人參與, 3年前最新討論串1/1
想請教版上高手 https://www.twse.com.tw/exchangeReport/MI_INDEX?response=csv&date=20201008&type=ALLBUT0999 這個網址我用chrome可以成功下載一個csv 但是我用python下載這個csv會失敗(之前python可以下載成功,不曉得為何最近開始 都沒辦法下載) 失敗訊息如下 [WinError 10054] 遠端主機已強制關閉一個現存的連線。 我目前的code如下 import urllib import urllib.parse import urllib.request import urllib.error url=" https://www.twse.com.tw/exchangeReport/MI_INDEX?response=csv&date=20201008&type=ALLBUT0999" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" headers = {'User-Agent': user_agent} request = urllib.request.Request(url,None,headers) response = urllib.request.urlopen(request) 有人知道要怎麼修改嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.164.6 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1602229930.A.9CB.html

10/09 17:11, 3年前 , 1F
你的爬蟲被偵測到了,可能是cookies或是ip等其他方式
10/09 17:11, 1F

10/09 17:18, 3年前 , 2F
我程式應該沒有開cookie
10/09 17:18, 2F

10/09 18:04, 3年前 , 3F
短時間 request 太多次會被擋
10/09 18:04, 3F

10/09 18:09, 3年前 , 4F
好久沒見這包
10/09 18:09, 4F

10/09 19:28, 3年前 , 5F
用requests吧 簡單的多
10/09 19:28, 5F

10/09 21:26, 3年前 , 6F
請用sleep
10/09 21:26, 6F

10/10 13:35, 3年前 , 7F
感覺中華電信固網ip被地圖砲黑名單
10/10 13:35, 7F

10/10 13:35, 3年前 , 8F
大概有人沒寫sleep又出包狂retry
10/10 13:35, 8F

10/10 13:56, 3年前 , 9F
沒寫sleep比較好,一直睡爬太慢
10/10 13:56, 9F

10/10 14:38, 3年前 , 10F
我沒有短時間request太多次 只有一次就失敗
10/10 14:38, 10F

10/10 14:38, 3年前 , 11F
應該也跟sleep沒有關西 還有別的方法嗎
10/10 14:38, 11F

10/10 14:44, 3年前 , 12F
我說的是可能別人出包導致你用的浮動ip也被鎖定掉了
10/10 14:44, 12F

10/10 14:45, 3年前 , 13F
沒寫sleep求快就等著被特定出來放黑名單啊
10/10 14:45, 13F

10/10 14:46, 3年前 , 14F
自動化之後爬得慢也是背景再爬,存到db去要用再讀取就好
10/10 14:46, 14F

10/10 14:52, 3年前 , 15F
我覺得好像不是ip被鎖 因為chrome可以連得上這個網址
10/10 14:52, 15F

10/10 14:56, 3年前 , 16F
看一下狀態碼
10/10 14:56, 16F

10/10 14:57, 3年前 , 17F
('Connection aborted.', ConnectionResetError(10054,
10/10 14:57, 17F

10/10 14:58, 3年前 , 18F
'遠端主機已強制關閉一個現存的連線。', None, 10054, N
10/10 14:58, 18F

10/10 14:58, 3年前 , 19F
每次請求ip都隨機拿的並不會被黑單,就算被黑也無
10/10 14:58, 19F

10/10 14:58, 3年前 , 20F
所謂
10/10 14:58, 20F

10/10 14:58, 3年前 , 21F
one))
10/10 14:58, 21F

10/10 14:59, 3年前 , 22F
我現在程式只有一行
10/10 14:59, 22F

10/10 14:59, 3年前 , 23F

10/10 14:59, 3年前 , 24F
分享我做的台股open data,有api可以直接call,發reque
10/10 14:59, 24F

10/10 14:59, 3年前 , 25F
st就好,不用再自己爬蟲
10/10 14:59, 25F

10/10 15:11, 3年前 , 26F
感謝f大的資料庫
10/10 15:11, 26F

10/10 15:17, 3年前 , 27F
f大的資料庫很棒,連外國的也有整理,感謝
10/10 15:17, 27F

10/10 20:07, 3年前 , 28F
先用 tracert 指令測試 www.twse.com.tw 看看。
10/10 20:07, 28F

10/10 20:10, 3年前 , 29F
關掉 ipv6 試試看,中華電信固網 用 ipv6 連 twse 會不
10/10 20:10, 29F

10/10 20:10, 3年前 , 30F
穩定。
10/10 20:10, 30F

10/10 20:46, 3年前 , 31F
chrome可以成功執行這個網址 所以我覺得應該不是ip被擋
10/10 20:46, 31F

10/10 20:46, 3年前 , 32F
的問題
10/10 20:46, 32F

10/10 20:47, 3年前 , 33F
有人可以用python成功request我文章裡面的url網址嗎
10/10 20:47, 33F

10/10 22:40, 3年前 , 34F
诶我試了一下,真的是chrome可以開但不能requests
10/10 22:40, 34F

10/10 22:40, 3年前 , 35F
然後真的ipv6關掉之後就正常
10/10 22:40, 35F

10/10 22:42, 3年前 , 36F
mickyang大好神,這種情況要怎麼辨認出來呀?
10/10 22:42, 36F

10/10 22:42, 3年前 , 37F
怎樣才能知道是ipv6造成這種問題的?真的誠心問
10/10 22:42, 37F

10/10 22:44, 3年前 , 38F
tracert下去看到有異狀但沒有想過改回ipv4會正常
10/10 22:44, 38F

10/10 23:07, 3年前 , 39F
啟用ipv6之後在code裡面force ipv4也可以動
10/10 23:07, 39F

10/11 11:27, 3年前 , 40F
感謝mickyang大 所以好像是chrome預設會用ipv4的樣子
10/11 11:27, 40F

10/11 11:28, 3年前 , 41F
關掉ipv6問題就都解決了 超強
10/11 11:28, 41F

10/11 11:31, 3年前 , 42F
我的爬蟲活過來了XD
10/11 11:31, 42F

10/11 11:33, 3年前 , 43F
mickyang已經把答案講出來了 我還在鬼打牆真的太蠢
10/11 11:33, 43F
文章代碼(AID): #1VW1QgdB (Python)