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

Python定义get_proxies函数后触发IndentationError缩进错误如何解决

错误原因分析

你遇到的IndentationError: unexpected indent属于Python典型的缩进错误,Python通过缩进区分代码块的所属层级,你的代码存在多处缩进逻辑错误,具体问题如下:

  • get_proxies函数定义后,response = requests.get(url)及后续属于函数逻辑的代码完全没有缩进,导致函数内定义的url变量无法被外部代码访问,函数结构完全不符合Python语法规范
  • if条件判断后的代码没有缩进进if所属代码块,和if同级,导致条件判断完全失效
  • proxies.add(proxy)缩进层级错误,没有归属到if代码块内
  • 最后return proxies行缩进空格数和同层级代码不一致,且错误缩进在for循环内部,直接触发报错

此外代码还存在两处非缩进类问题:没有导入requests依赖库,代码中的"是HTML转义字符,实际运行需要替换为英文双引号"。

修复后的完整代码
import requests
from lxml.html import fromstring

def get_proxies():
    url = 'https://free-proxy-list.net/'
    response = requests.get(url)
    parser = fromstring(response.text)
    proxies = set()
    for i in parser.xpath('//tbody/tr')[:10]:
        if i.xpath('.//td[7][contains(text(),"yes")]'):
            # Grabbing IP and corresponding PORT
            proxy = ":".join([i.xpath('.//td[1]/text()')[0], i.xpath('.//td[2]/text()')[0]])
            proxies.add(proxy)
    return proxies
修复说明
  • 函数内部所有代码统一使用4个空格缩进,保证层级清晰
  • if判断后的代理拼接、加入集合的代码统一缩进进if代码块,只有条件满足时才执行
  • return语句调整到和for循环同级的位置,保证遍历完前10条代理数据后再返回结果
  • 补充导入requests库,将HTML转义的引号替换为正常的英文双引号

内容的提问来源于stack exchange,提问作者Aryan Samthaan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:45:00