Python 如何构造我的Django web抓取项目?
我对编程相当陌生,在Django中构建项目时仍然存在一些问题。 我正在建立一个web scraper应用程序,我的目标是可视化被刮取的数据,并以不同的图表返回它 目前,我已经在views.py文件中找到了抓取代码 我的问题是:这类应用程序是否有首选的目录结构 我在想: -在新的scrape.py中设置刮码 -在models.py中设置要将数据馈送到的模型 -在views.py中设置可视化代码 这是我的观点.py atm: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
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文件中的网站代码
curl -o output.json http://localhost:5000/getjson
我将更深入地研究curl
的功能,特别是对于快速开发的目的。就我个人而言,我在上发现了大量关于正确的程序结构的信息。它对你能想到的几乎每件事都有很多细节。希望这有帮助