

これまでうまく動いていた以下のスクリプトを実行すると、エラーが出るようになりました。

[code]

    import requests
    import mechanize
    
    b = mechanize.Browser();
    b.set_handle_robots(False);
    b.set_handle_refresh(False);
    url = "http://info.finance.yahoo.co.jp/history/?code=9783";
    h = b.open(url);
    
[/code]

他のurl(`http://www.google.com`など)ではうまくいきます。  
なぜでしょうか？

エラーは以下のとおりです。

[code]

    File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
    File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 255, in _mech_open
    raise response
    mechanize._response.httperror_seek_wrapper: HTTP Error 999: Unable to process request at this time -- error 999
    
[/code]


CC BY-SA 3.0
2015-05-30T01:53:30.550
10784
2015-06-29T03:02:00.627
9797
question
python
python mechanizeでHTTP Error 999


自己解決しているようですが、調べたので書いておきます。

[Rate Limits for Yahoo Finance (999 error codes)? - YDN
Forums](http://www.yahooapis.com/forum/General-Discussion-at-YDN/Rate-Limits-
for-Yahoo-Finance-999/1247924431000-b6592497-c06d-32f9-a498-5569805b59ea)
によると、同一のIPアドレスから、1時間に400回アクセスすると999エラーを返す例があるようです。

時間あたりのアクセス回数を抑制すれば解決するのではないかと思います。


CC BY-SA 3.0
2015-05-30T02:47:47.807
10785
2015-05-30T02:47:47.807
806
10784
answer