blrec
blrec copied to clipboard
cookie中有非ascii字符时出现意外错误
2024-01-21 18:57:55.287 | CRITICAL | exception_handler:24 | 81004 - UnicodeEncodeError('latin-1', "balh_server_custom=https://哔哩.plus(直接从request复制时是https://哔哩.plus);", 1010, 1012, 'ordinal not in range(256)')
Traceback (most recent call last):
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\reactivex\observable\catch.py", line 55, in action
current = next(sources_)
^^^^^^^^^^^^^^
StopIteration
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\blrec\core\operators\request_exception_handler.py", line 41, in on_error
raise exc
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\blrec\core\operators\connection_error_handler.py", line 46, in on_error
raise exc
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\blrec\hls\operators\playlist_fetcher.py", line 52, in on_next
content = self._fetch_playlist(url)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\tenacity\__init__.py", line 289, in wrapped_f
return self(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\tenacity\__init__.py", line 379, in __call__
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\tenacity\__init__.py", line 314, in iter
return fut.result()
^^^^^^^^^^^^
File "concurrent\futures\_base.py", line 449, in result
File "concurrent\futures\_base.py", line 401, in __get_result
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\tenacity\__init__.py", line 382, in __call__
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\blrec\hls\operators\playlist_fetcher.py", line 102, in _fetch_playlist
response = self._session.get(url, headers=self._live.headers, timeout=3)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\requests\sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\requests\adapters.py", line 486, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\urllib3\connectionpool.py", line 790, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\urllib3\connectionpool.py", line 496, in _make_request
conn.request(
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\urllib3\connection.py", line 394, in request
self.putheader(header, value)
File "C:\Users\[username]\AppData\Local\blrec\python\Lib\site-packages\urllib3\connection.py", line 308, in putheader
super().putheader(header, *values)
File "http\client.py", line 1259, in putheader
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 1010-1011: ordinal not in range(256)
在使用 [解除B站区域限制] 脚本时可能会设置中文的代理路径并保存在cookie中,web ui中的测试按钮使用js进行测试,不会产生异常。而python中则会抛出以上异常。