python DrissionPage模块,启动浏览器的时候报403错误?

from DrissionPage import ChromiumPage
page=ChromiumPage()

WebSocketBadStatusException               Traceback (most recent call last)
Input In [28], in <cell line: 1>()
----> 1 page=ChromiumPage()

File ~\anaconda3\lib\site-packages\DrissionPage\_pages\chromium_page.py:33, in ChromiumPage.__init__(self, addr_or_opts, tab_id, timeout, addr_driver_opts)
     31 self._page = self
     32 address = self._handle_options(addr_or_opts)
---> 33 self._run_browser()
     34 super().__init__(address, tab_id)
     35 self.set.timeouts(base=timeout)

File ~\anaconda3\lib\site-packages\DrissionPage\_pages\chromium_page.py:73, in ChromiumPage._run_browser(self)
     70     raise BrowserConnectError('\n浏览器连接失败,请检查是否启用全局代理。如是,须设置不代理127.0.0.1地址。')
     72 ws = ws.json()['webSocketDebuggerUrl'].split('/')[-1]
---> 73 self._browser = Browser(self._chromium_options.address, ws, self)
     75 if (is_exist and self._chromium_options._headless is False and
     76         'headless' in self._browser.run_cdp('Browser.getVersion')['userAgent'].lower()):
     77     self._browser.quit(3)

File ~\anaconda3\lib\site-packages\DrissionPage\_base\browser.py:41, in Browser.__init__(self, address, browser_id, page)
     39 self.page = page
     40 self.address = address
---> 41 self._driver = BrowserDriver(browser_id, 'browser', address, self)
     42 self.id = browser_id
     43 self._frames = {}

File ~\anaconda3\lib\site-packages\DrissionPage\_base\chromium_driver.py:233, in BrowserDriver.__init__(self, tab_id, tab_type, address, browser)
    231 self._created = True
    232 BrowserDriver.BROWSERS[tab_id] = self
--> 233 super().__init__(tab_id, tab_type, address)
    234 self.browser = browser

File ~\anaconda3\lib\site-packages\DrissionPage\_base\chromium_driver.py:44, in ChromiumDriver.__init__(self, tab_id, tab_type, address)
     41 self.method_results = {}
     42 self.event_queue = Queue()
---> 44 self.start()

File ~\anaconda3\lib\site-packages\DrissionPage\_base\chromium_driver.py:173, in ChromiumDriver.start(self)
    171 """启动连接"""
    172 self._stopped.clear()
--> 173 self._ws = create_connection(self._websocket_url, enable_multithread=True,
    174                              suppress_origin=True)
    175 self._recv_th.start()
    176 self._handle_event_th.start()

File ~\anaconda3\lib\site-packages\websocket\_core.py:494, in create_connection(url, timeout, class_, **options)
    489 websock = class_(sockopt=sockopt, sslopt=sslopt,
    490                  fire_cont_frame=fire_cont_frame,
    491                  enable_multithread=enable_multithread,
    492                  skip_utf8_validation=skip_utf8_validation, **options)
    493 websock.settimeout(timeout if timeout is not None else getdefaulttimeout())
--> 494 websock.connect(url, **options)
    495 return websock

File ~\anaconda3\lib\site-packages\websocket\_core.py:220, in WebSocket.connect(self, url, **options)
    216 self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options),
    217                            options.pop('socket', None))
    219 try:
--> 220     self.handshake_response = handshake(self.sock, *addrs, **options)
    221     self.connected = True
    222 except:

File ~\anaconda3\lib\site-packages\websocket\_handshake.py:69, in handshake(sock, hostname, port, resource, **options)
     66 send(sock, header_str)
     67 dump("request header", header_str)
---> 69 status, resp = _get_resp_headers(sock)
     70 success, subproto = _validate(resp, key, options.get("subprotocols"))
     71 if not success:

File ~\anaconda3\lib\site-packages\websocket\_handshake.py:135, in _get_resp_headers(sock, success_status)
    133 status, resp_headers, status_message = read_headers(sock)
    134 if status != success_status:
--> 135     raise WebSocketBadStatusException("Handshake status %d %s", status, status_message)
    136 return status, resp_headers

WebSocketBadStatusException: Handshake status 403 Forbidden
阅读 1.7k
avatarAI BotBETA

这个问题看起来是在使用DrissionPage模块时,浏览器启动时遇到了403错误。这通常是由于服务器拒绝处理你的请求,可能是由于权限问题或身份验证失败。

403错误是HTTP协议中的一个状态码,表示服务器理解了客户端的请求,但是拒绝执行此请求。

解决这个问题的方法可能有以下几种:

  1. 检查你的网络连接:确保你的网络连接是正常的,没有任何防火墙或者代理服务器阻止你的请求。
  2. 检查你的请求头:如果你在向服务器发送请求时附带了请求头,那么可能存在一些问题。尝试不发送请求头,或者检查你的请求头是否正确。
  3. 检查服务器的配置:如果你有权访问服务器,那么检查服务器的配置,看看是否有什么设置阻止了你的请求。例如,检查服务器的防火墙设置、.htaccess文件等。
  4. 检查你的身份验证信息:如果你在请求时需要身份验证,那么确保你的身份验证信息是正确的。这包括用户名、密码、API密钥等。
  5. 最后,你可能需要联系服务器的管理员或者提供商,看看他们是否了解这个问题。他们可能能提供更详细的错误信息,或者修复阻止你的请求的问题。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题