Python 如何构造我的Django web抓取项目?

Python 如何构造我的Django web抓取项目?,python,django,web-scraping,beautifulsoup,Python,Django,Web Scraping,Beautifulsoup,我对编程相当陌生,在Django中构建项目时仍然存在一些问题。 我正在建立一个web scraper应用程序,我的目标是可视化被刮取的数据,并以不同的图表返回它 目前,我已经在views.py文件中找到了抓取代码 我的问题是:这类应用程序是否有首选的目录结构 我在想: -在新的scrape.py中设置刮码 -在models.py中设置要将数据馈送到的模型 -在views.py中设置可视化代码 这是我的观点.py atm: from django.shortcuts import render f

我对编程相当陌生,在Django中构建项目时仍然存在一些问题。 我正在建立一个web scraper应用程序,我的目标是可视化被刮取的数据,并以不同的图表返回它

目前,我已经在views.py文件中找到了抓取代码

我的问题是:这类应用程序是否有首选的目录结构

我在想:

-在新的scrape.py中设置刮码

-在models.py中设置要将数据馈送到的模型

-在views.py中设置可视化代码

这是我的观点.py atm:

from django.shortcuts import render
from django.views.generic import TemplateView

import requests
from bs4 import BeautifulSoup


def PlayerDetailView(request):

    first_name = 'Drew'
    last_name = 'Brees'
    last_name_first_letter = last_name[0]
    last_name_first_four = last_name[0:4]
    first_name_first_two = first_name[0:2]


    page = requests.get('https://www.pro-football-reference.com/players/{}/{}{}00.htm'.format(last_name_first_letter,                                                                                            last_name_first_four,                                                                                                                                first_name_first_two))


    content = page.content

    week_number = 251
    stats = soup.find("tr", {"id": "stats.{}".format(week_number)})

    stats_relevant = ['pass_yds', 'pass_td', 'rush_yds']
    stat_list = []


for stat in stats_relevant:
    stat_list.append(int(list(stats.find("td", {"data-stat": "{}".format(stat)}).children)[0]))

dic_list = {'tag':stat_list}
    return render(request,'league_app/player.html', context=dic_list)

提前谢谢你

首先创建您的数据模型以保存您的刮取数据, 然后使用任务队列来刮取数据,然后将其存储在数据库中。
使用数据库中的数据可视化您的数据。

我最近在Flask中从事一个web抓取项目,并通过Flask将抓取功能作为可调用的API提供服务。通过这种方式,我可以通过
curl
调用或使用少量JavaScript的简单前端轻松测试API和函数,具体取决于您的偏好

因此,在上述情况下,我们可以:

  • “Scraping.py”中的刮片功能
  • “controller.py”中的服务器(Django或Flask)代码
  • “models.py”中的数据库或数据结构代码
  • (可选)相关HTML、CSS和JavaScript文件中的网站代码
将一些函数路由到URI后,可以通过调用“controller.py”文件启动服务器,并进行如下API调用:

curl -o output.json http://localhost:5000/getjson
我将更深入地研究
curl
的功能,特别是对于快速开发的目的。就我个人而言,我在上发现了大量关于正确的程序结构的信息。它对你能想到的几乎每件事都有很多细节。希望这有帮助