【问题标题】:How to structure my Django web scraping project?如何构建我的 Django Web 抓取项目?
【发布时间】:2019-01-30 12:14:22
【问题描述】:

我对编程还很陌生,但在 Django 中构建我的项目时仍然存在一些问题。 我正在设置一个网络抓取应用程序,我的目标是可视化抓取的数据并将其返回到不同类型的图表中。

目前我在 views.py 文件中有抓取代码。

我的问题是:这种应用程序有首选的目录结构吗?

我在想:

-在新的 scrape.py 中设置抓取代码

-设置模型以在 models.py 中提供数据

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

这是我的views.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)

提前谢谢你!

【问题讨论】:

    标签: python django web-scraping beautifulsoup


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我最近一直在 Flask 中从事网络抓取项目,并通过 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 的强大功能,尤其是用于快速开发的目的。就个人而言,我在https://docs.python-guide.org/ 找到了大量关于正确程序结构的信息。它详细介绍了您能想到的几乎所有内容。希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-18
        • 2020-01-16
        • 1970-01-01
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        相关资源
        最近更新 更多