我对编程还很陌生,但是在Django中构建项目时仍然遇到一些问题。 我正在设置一个Web抓取应用程序,我的目标是可视化抓取的数据并以不同类型的图返回它。
此刻,我已经在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)
提前谢谢!
答案 0 :(得分:0)
首先创建数据模型以保存抓取的数据, 然后使用任务队列使用Celery来抓取数据,然后将其存储在数据库中。 使用数据库中的数据可视化数据。
答案 1 :(得分:0)
我最近一直在Flask中从事网络抓取项目,并通过Flask将抓取功能作为可调用的API提供服务。这样,根据您的喜好,我可以通过curl
调用或带有少量JavaScript的简单前端轻松测试API和功能。
因此,在上述情况下,我们可以:
一旦一些功能被路由到URI,您就可以通过调用“ controller.py”文件来启动服务器并进行如下API调用:
curl -o output.json http://localhost:5000/getjson
我会更多地研究curl
的力量,特别是出于快速发展的目的。就个人而言,我在https://docs.python-guide.org/上发现了大量有关正确程序结构的信息。它涵盖了几乎所有您能想到的细节。希望这会有所帮助!