You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Playwright Python配置免费代理出现net::ERR_TIMED_OUT错误求助

Playwright配置HTTP代理超时错误的解决办法

问题详情

从免费代理站点获取了代理203.176.179.255:8080,用Playwright写了如下代码:

from playwright.sync_api import sync_playwright
def run(playwright):
    chromium = playwright.chromium 
    browser = chromium.launch(channel='chrome',headless=False,proxy={"server":"http://203.176.179.255:8080"})
    page = browser.new_page()
    page.goto("https://grabify.link/4R47U5")

with sync_playwright() as playwright:
    run(playwright)

运行后触发超时错误:

File "C:/Users/NNB-Suppliers/AppData/Local/Programs/Python/Python37/playwright test.py", line 12, in <module>
run(playwright)
File "C:/Users/NNB-Suppliers/AppData/Local/Programs/Python/Python37/playwright test.py", line 8, in run
page.goto("https://grabify.link/4R47U5")
File "C:\Users\NNB-Suppliers\AppData\Local\Programs\Python\Python37\lib\site-packages\playwright\sync_api\_generated.py", line 7432, in goto
url=url, timeout=timeout, waitUntil=wait_until, referer=referer
File "C:\Users\NNB-Suppliers\AppData\Local\Programs\Python\Python37\lib\site-packages\playwright\_impl\_sync_base.py", line 104, in _sync
return task.result()
File "C:\Users\NNB-Suppliers\AppData\Local\Programs\Python\Python37\lib\site-packages\playwright\_impl\_page.py", line 494, in goto
return await self._main_frame.goto(**locals_to_params(locals()))
File "C:\Users\NNB-Suppliers\AppData\Local\Programs\Python\Python37\lib\site-packages\playwright\_impl\_frame.py", line 136, in goto
await self._channel.send("goto", locals_to_params(locals()))
File "C:\Users\NNB-Suppliers\AppData\Local\Programs\Python\Python37\lib\site-packages\playwright\_impl\_connection.py", line 44, in send
lambda: self.inner_send(method, params, False)
File "C:\Users\NNB-Suppliers\AppData\Local\Programs\Python\Python37\lib\site-packages\playwright\_impl\_connection.py", line 387, in wrap_api_call
return await cb()
File "C:\Users\NNB-Suppliers\AppData\Local\Programs\Python\Python37\lib\site-packages\playwright\_impl\_connection.py", line 78, in inner_send
result = next(iter(done)).result()
playwright._impl._api_types.Error: net::ERR_TIMED_OUT at https://grabify.link/4R47U5
=========================== logs ===========================
navigating to "https://grabify.link/4R47U5", waiting until "load"
============================================================

解决方法

1. 先确认代理是否可用

免费代理稳定性极差,大概率是这个代理已经失效。用curl测试连通性:

curl -x http://203.176.179.255:8080 https://grabify.link/4R47U5

如果curl也超时,直接更换代理即可——免费代理站点的列表中多数是过期或不可用的,建议多尝试几个。

2. 核对代理协议与目标站点匹配

你访问的是HTTPS站点,需确保代理支持HTTPS请求。部分HTTP代理仅能处理HTTP流量,无法转发HTTPS请求,会导致超时。若代理支持HTTPS,可尝试将配置中的协议改为https:

browser = chromium.launch(channel='chrome',headless=False,proxy={"server":"https://203.176.179.255:8080"})

多数HTTP代理可通过CONNECT方法处理HTTPS请求,但如果仍不行,需更换支持HTTPS的代理。

3. 延长超时时间或调整等待策略

Playwright默认goto超时为30秒,若代理网速较慢,可手动设置更长的超时时间:

page.goto("https://grabify.link/4R47U5", timeout=60000)  # 设置为60秒超时

或调整等待策略,仅等待DOM加载完成而非页面完全加载,减少等待时长:

page.goto("https://grabify.link/4R47U5", wait_until="domcontentloaded")

4. 排查本地网络限制

部分公司内网或地区网络会屏蔽免费代理IP,导致无法连接。可尝试切换至手机热点网络测试,排除本地网络的限制。

5. 代理需认证时添加账号密码

若代理要求用户名和密码认证,需在配置中补充相关信息:

browser = chromium.launch(
    channel='chrome',
    headless=False,
    proxy={
        "server": "http://203.176.179.255:8080",
        "username": "你的用户名",
        "password": "你的密码"
    }
)

免费代理通常无需认证,但如果遇到407错误则需添加。

内容的提问来源于stack exchange,提问作者Ajay Pun Magar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:40:37