blrec icon indicating copy to clipboard operation
blrec copied to clipboard

cookie中有非ascii字符时出现意外错误

Open gadfly3173 opened this issue 1 year ago • 0 comments

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中则会抛出以上异常。

gadfly3173 avatar Jan 21 '24 11:01 gadfly3173