前提・実現したいこと
PythonのPandasのread_htmlを使って、WebサイトのTableデータを収集するコードを書いていますが、ときどきフリーズしてしまうことから、タイムアウト処理を入れようとfunc_timuoutライブラリのfunc_timuout関数で試みていますが、うまくいきません。
func_timeoutの使い方のご教示をお願いします。
発生している問題・エラーメッセージ
C:\miniconda3\envs\ml_test\lib\site-packages\func_timeout\dafunc.py:68: FutureWarning: Starting with Pandas version 2.0 all arguments of read_html except for the argument 'io' will be keyword-only ret.append( func(*args2, **kwargs2) ) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) File C:\miniconda3\envs\ml_test\lib\site-packages\IPython\core\interactiveshell.py, in run_code: Line 3441: exec(code_obj, self.user_global_ns, self.user_ns) In [32]: Line 5: df=func_timeout(10, pd.read_html, args=(url)) File C:\miniconda3\envs\ml_test\lib\site-packages\func_timeout\dafunc.py, in func_timeout: Line 108: raise_exception(exception) File C:\miniconda3\envs\ml_test\lib\site-packages\func_timeout\py3_raise.py, in raise_exception: Line 7: raise exception[0] from None File C:\miniconda3\envs\ml_test\lib\site-packages\pandas\util\_decorators.py, in wrapper: Line 299: return func(*args, **kwargs) TypeError: read_html() takes from 1 to 15 positional arguments but 28 were given ---------------------------------------------------------------------------
該当のソースコード
Python3
1import pandas as pd 2from func_timeout import func_timeout, FunctionTimedOut 3 4url='https://finance.yahoo.co.jp/' 5df=func_timeout(10, pd.read_html, args=(url))
試したこと
func_timeout()の引数がおかしいのかと思いますが、どう直せばよいのかわかりません。
補足情報(FW/ツールのバージョンなど)
上記のソースコードは質問のために抜粋しています。
うまくErrorが取れたら、try-except文で例外処理を入れたいと考えています。
Python 3.9.4
Jupyter lab 3.0.14
pandas 1.2.4
func_timeout 4.3.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/08 01:17