我正在尝试使用 python beautiful soup 框架从网站上删除大型菜单!
for i in menu_items('https://natureshair.com.au/'):
print(json.dumps(i, indent=6))
输出很好!我可以选择不同级别的菜单!
现在我想在浏览器中查看结果,所以我使用 Django 框架在浏览器中显示此输出
这是我的views.py代码
def say_hello(request):
for i in menu_items('https://natureshair.com.au/'):
return HttpResponse(json.dumps(i, indent=6))
但我在浏览器中只获得第一级菜单列表!不知道我在哪里错过了什么
请让我知道我在这里缺少什么?
使用 JsonResponse 而不是 HttpResponse
from django.http import JsonResponse
def say_hello(request):
for i in menu_items('https://natureshair.com.au/'):
return JsonResponse(i)
您枚举了结果,但您从获得第一项开始就返回响应。这意味着它返回 that 项的结果。
因此,您应该首先收集所有结果,然后转储该斑点:
def say_hello(request):
results = list(menu_items('https://natureshair.com.au/'))
return JsonResponse({'results': results})