[问题] 台湾证券交易所爬虫

楼主: kakar0to (Poker Face)   2020-10-09 15:52:07
想请教版上高手
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)
有人知道要怎么修改吗
谢谢
作者: weel99699 (旦旦)   2020-10-09 17:11:00
你的爬虫被侦测到了,可能是cookies或是ip等其他方式
楼主: kakar0to (Poker Face)   2020-10-09 17:18:00
我程式应该没有开cookie
作者: CaptPlanet (ep)   2020-10-09 18:04:00
短时间 request 太多次会被挡
作者: aidansky0989 (alta)   2020-10-09 18:09:00
好久没见这包
作者: TakiDog (多奇狗)   2020-10-09 19:28:00
用requests吧 简单的多
作者: andy19960407 (258698)   2020-10-09 21:26:00
请用sleep
作者: azuel (Observer)   2020-10-10 13:35:00
感觉中华电信固网ip被地图砲黑名单大概有人没写sleep又出包狂retry
作者: aidansky0989 (alta)   2020-10-10 13:56:00
没写sleep比较好,一直睡爬太慢
楼主: kakar0to (Poker Face)   2020-10-10 14:38:00
我没有短时间request太多次 只有一次就失败应该也跟sleep没有关西 还有别的方法吗
作者: azuel (Observer)   2020-10-10 14:44:00
我说的是可能别人出包导致你用的浮动ip也被锁定掉了没写sleep求快就等著被特定出来放黑名单啊自动化之后爬得慢也是背景再爬,存到db去要用再读取就好
楼主: kakar0to (Poker Face)   2020-10-10 14:52:00
我觉得好像不是ip被锁 因为chrome可以连得上这个网址
作者: aidansky0989 (alta)   2020-10-10 14:56:00
看一下状态码
楼主: kakar0to (Poker Face)   2020-10-10 14:57:00
('Connection aborted.', ConnectionResetError(10054,'远端主机已强制关闭一个现存的连线。', None, 10054, N
作者: aidansky0989 (alta)   2020-10-10 14:58:00
每次请求ip都随机拿的并不会被黑单,就算被黑也无所谓
楼主: kakar0to (Poker Face)   2020-10-10 14:58:00
one))我现在程式只有一行
作者: f496328mm (为什么会流泪)   2020-10-10 14:59:00
https://github.com/FinMind/FinMind分享我做的台股open data,有api可以直接call,发request就好,不用再自己爬虫
楼主: kakar0to (Poker Face)   2020-10-10 15:11:00
感谢f大的数据库
作者: azuel (Observer)   2020-10-10 15:17:00
f大的数据库很棒,连外国的也有整理,感谢
作者: mickyang (mick)   2020-10-10 20:07:00
先用 tracert 指令测试 www.twse.com.tw 看看。关掉 ipv6 试试看,中华电信固网 用 ipv6 连 twse 会不稳定。
楼主: kakar0to (Poker Face)   2020-10-10 20:46:00
chrome可以成功执行这个网址 所以我觉得应该不是ip被挡的问题有人可以用python成功request我文章里面的url网址吗
作者: azuel (Observer)   2020-10-10 22:40:00
诶我试了一下,真的是chrome可以开但不能requests然后真的ipv6关掉之后就正常mickyang大好神,这种情况要怎么辨认出来呀?怎样才能知道是ipv6造成这种问题的?真的诚心问tracert下去看到有异状但没有想过改回ipv4会正常启用ipv6之后在code里面force ipv4也可以动
楼主: kakar0to (Poker Face)   2020-10-11 11:27:00
感谢mickyang大 所以好像是chrome默认会用ipv4的样子关掉ipv6问题就都解决了 超强我的爬虫活过来了XDmickyang已经把答案讲出来了 我还在鬼打墙真的太蠢

Links booklink

Contact Us: admin [ a t ] ucptt.com