楼主:
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)
有人知道要怎么修改吗
谢谢
你的爬虫被侦测到了,可能是cookies或是ip等其他方式
楼主:
kakar0to (Poker Face)
2020-10-09 17:18:00我程式应该没有开cookie
作者:
TakiDog (多奇狗)
2020-10-09 19:28:00用requests吧 简单的多
作者:
azuel (Observer)
2020-10-10 13:35:00感觉中华电信固网ip被地图砲黑名单大概有人没写sleep又出包狂retry
楼主:
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可以连得上这个网址
楼主:
kakar0to (Poker Face)
2020-10-10 14:57:00('Connection aborted.', ConnectionResetError(10054,'远端主机已强制关闭一个现存的连线。', None, 10054, N
每次请求ip都随机拿的并不会被黑单,就算被黑也无所谓
楼主:
kakar0to (Poker Face)
2020-10-10 14:58:00one))我现在程式只有一行
楼主:
kakar0to (Poker Face)
2020-10-10 15:11:00感谢f大的数据库
作者:
azuel (Observer)
2020-10-10 15:17:00f大的数据库很棒,连外国的也有整理,感谢
先用 tracert 指令测试 www.twse.com.tw 看看。关掉 ipv6 试试看,中华电信固网 用 ipv6 连 twse 会不稳定。
楼主:
kakar0to (Poker Face)
2020-10-10 20:46:00chrome可以成功执行这个网址 所以我觉得应该不是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已经把答案讲出来了 我还在鬼打墙真的太蠢