首页 > 解决方案 > 烧瓶正则表达式搜索,AttributeError:'NoneType'对象没有属性'group',但仍然获取捕获的字符串

问题描述

我试图用这个 Flask 代码在这个站点上获取 JSON:

def main():
    link = "https://www.lazada.co.id/logitech-official-store/?langFlag=id&q=All-Products&from=wangpu&pageTypeId=2"
    result = re.search(r'pageData=(.+)<', requests.get(link).text)
    result = result.group(1)
    result = json.loads(result)
    listItems = result["mods"]["listItems"]
    return render_template('index.html', listItems=listItems)

然后我收到以下错误:

File "app.py", line 18, in main
    result = result.group(1)
AttributeError: 'NoneType' object has no attribute 'group'

奇怪的是它仍然可以得到结果并且能够渲染模板。但是当我将它部署到 Heroku 时,页面不会显示。它说“内部服务器错误”并在日志中显示上述错误。所以我想通过修改代码来检查我是否真的得到了结果:

def main():
    link = "https://www.lazada.co.id/logitech-official-store/?langFlag=id&q=All-Products&from=wangpu&pageTypeId=2"
    result = re.search(r'pageData=(.+)<', requests.get(link).text)
    if result:
        result = result.group(1)
        result = json.loads(result)
        listItems = result["mods"]["listItems"]
        return render_template('index.html', listItems=listItems)
    else:
        return "failed"

在本地运行时,它运行良好,能够渲染模板并且没有显示错误。但是当我将它部署到 Heroku 时,它总是没有结果并显示“失败”字符串。我不明白这种奇怪的行为。我想让我的代码在 Heroku 工作。我在这里错过了什么吗?

标签: pythonregexherokuflask

解决方案


推荐阅读