【Twitter】API不具合に遭遇（11/8追記）

タスクスケジューラでバッチを叩いてツイートを自動収集してたのですが、
昨日の12時以降（暫定）に収集開始早々エラーが起きたようで収集されておらず。


#エラー内容

```
Traceback (most recent call last):
  File "C:\Users\hoge\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 594, in urlopen
    self._prepare_proxy(conn)
  File "C:\Users\hoge\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 815, in _prepare_proxy
    conn.connect()
  File "C:\Users\hoge\Anaconda3\lib\site-packages\urllib3\connection.py", line 356, in connect
    ssl_context=context)
  File "C:\Users\hoge\Anaconda3\lib\site-packages\urllib3\util\ssl_.py", line 359, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "C:\Users\hoge\Anaconda3\lib\ssl.py", line 412, in wrap_socket
    session=session
  File "C:\Users\hoge\Anaconda3\lib\ssl.py", line 850, in _create
    self.do_handshake()
  File "C:\Users\hoge\Anaconda3\lib\ssl.py", line 1108, in do_handshake
    self._sslobj.do_handshake()
OSError: [Errno 0] Error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\hoge\Anaconda3\lib\site-packages\requests\adapters.py", line 445, in send
    timeout=timeout
  File "C:\Users\hoge\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\hoge\Anaconda3\lib\site-packages\urllib3\util\retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.twitter.com', port=443): Max retries exceeded with url: /1.1/application/rate_limit_status.json (Caused by ProxyError('Cannot connect to proxy.', OSError(0, 'Error')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "gettersNM.py", line 48, in <module>
    for tweet in tweets:
  File "C:\自動収集\getters.py", line 49, in collect
    self.checkLimit()
  File "C:\自動収集\getters.py", line 123, in checkLimit
    res = self.session.get(url)
  File "C:\Users\hoge\Anaconda3\lib\site-packages\requests\sessions.py", line 525, in get
    return self.request('GET', url, **kwargs)
  File "C:\Users\hoge\Anaconda3\lib\site-packages\requests\sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\hoge\Anaconda3\lib\site-packages\requests\sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\hoge\Anaconda3\lib\site-packages\requests\adapters.py", line 507, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='api.twitter.com', port=443): Max retries exceeded with url: /1.1/application/rate_limit_status.json (Caused by ProxyError('Cannot connect to proxy.', OSError(0, 'Error')))
```

#なんでだろう
443なのでまーたプロキシか？　と思いつつ、もしかしたら仕様が変わったのかもしれないと思って一応検索。

[Twitter、APIへのアクセス回数を制限　ツイートとリツイートは3時間で300件まで](https://www.itmedia.co.jp/news/articles/1810/23/news109.html)
上記の記事はありましたが別にツイート送信するとこ叩いてないので関係なさげ。
というか先週は普通に叩けてたので。ザ・杞憂。

つまり特に仕様変更はないようなので、TwitterAPIでTwitterをエゴサすると～
・TwitterAPIへのリクエストの10～20回に一回はタイムアウト現象が
・Twitter APIへのアクセスが通常よりもかなり高い頻度でタイムアウトする
等のツイートを発見。
Twitter側の不具合ですかね！　不具合ってことにしておこう！

確かにAPIを何度か叩いてみるとタイムアウトしたりしなかったり気まぐれロマンティック。
そんなことでは困るのですが、こっち側の不具合ではないようなので仕方がない。

検索する単語をテキストファイルに入れて一行ずつ検索かけていたので、
エラーが出た！→エラー発生前の検索単語から再トライ！
というアナログ力技をすることにしました。

エラー出た程度で記事書くのも何なんですけどね……。
たまには自分が悪くないときもあるんですよってね……。

# 11/8追記
[直ったようです。](https://twittercommunity.com/t/abnormal-level-of-timeouts-in-the-japan-region/131534)

動作確認したらすいすい動きます！
やったぜ！