首页 > 解决方案 > 网页上未显示抓取的数据

问题描述

我正在使用 Beautiful Soup 进行网页抓取。我想在网页上显示数据,但代码不起作用。这是我的views.py:

def index(request):
    session=request.Session() 
    session.headers={"User-Agent":"Googlebot/2.1 (+http://www.google.com/bot.html)"}
    url="https://weather.com/en-IN/weather/today/l/9d531fc505eb4a93a90a7e8303ccaa22a142c9370b68391129de5019ee7adf5b"
    content=session.get(url,verify=False).content
    soup=BeautifulSoup(content,"html.parser")
    for hit in soup.findAll(attrs={'class':'today_nowcard-temp'}):
        head=hit.text
        summ=(hit.next_sibling.text)
        weather=News()
        weather.head=head
        weather.summ=summ
        weather.save()
    return redirect("../")

def news_list(request):
    weathers=News.objects.all()
    context={
        'object_list': weathers,
    }
    return render(request,'index.html',context)

这是我希望在其中显示数据的 index.html:

<div class="trending-top mb-30">
                            <div class="trend-top-img">
                                <div class="trend-top-cap">
                                    <span>{{head}}</span>
                                    <h2><a href="details.html">{{summ}}</a></h2>
                                </div>
                            </div>
                        </div>

下面是我的models.py:

from django.db import models
class News(models.Model):
    head=models.CharField(max_length=100)
    summ=models.CharField(max_length=100)
    def __str__(self):
        return self.title

标签: pythonhtmldjangoweb-scrapingweb-development-server

解决方案


推荐阅读