def collect_parents(_rid): # Get Result html url = "https://racev3.netkeiba.com/race/shutuba_past.html?race_id=" + _rid + "&rf=shutuba_submenu" page = load(url, "Shutuba_Past5_Table") # Parse Race Info selector = "div.Shutuba_HorseList > table > tbody > tr" table = extract_table(page, selector) # Parse Odds parents = {} for line in table[1:]: # HORSE NAME horse = fmt(line.select_one("div.Horse02").text, r"[^\x01-\x7E]+") # PARENT NAME father = fmt(line.select_one("div.Horse01").text, r".+") mother = fmt(line.select_one("div.Horse03").text, r".+") grand = fmt(line.select_one("div.Horse04").text, r"\((.+)\)") parents[horse] = { "father_name": father, "mother_name": mother, "grand_name": grand } return parents
def collect_odds(_rid): # Get Result html url = "https://racev3.netkeiba.com/odds/index.html?type=b1&race_id=" + _rid + "&rf=shutuba_submenu" page = load(url, "Odds") # Parse Race Info selector = "div#odds_fuku_block > table > tbody > tr" table = extract_table(page, selector) # Parse Odds odds = {} if table is not None: for fuku in table[1:]: # HORSE NAME horse = fmt( fuku.select_one("td.Horse_Name").text, r"[^\x01-\x7E]+") # PLACE RATE rate = fuku.select_one("td.Odds").text min_odds = fmt(rate, r"(\d+.\d{1}) - \d+.\d{1}", "float") max_odds = fmt(rate, r"\d+.\d{1} - (\d+.\d{1})", "float") odds[horse] = { "place_odds_min": min_odds, "place_odds_max": max_odds } return odds
def collect(_rid): # Get Result html url = "https://racev3.netkeiba.com/race/result.html?race_id=" + _rid + "&rf=race_list" page = load(url, "ResultTableWrap") # Get Entry html if page is None: url = "https://racev3.netkeiba.com/race/shutuba.html?race_id=" + _rid + "&rf=race_submenu" page = load(url, "tablesorter") # Parse race info if page is not None: upsert_race(page) else: return {"status": "ERROR", "message": "There is no page: " + _rid} return {"status": "SUCCESS", "message": _rid}
def bulk_collect(_year, _month): url = "https://keiba.yahoo.co.jp/schedule/list/" + _year + "/?month=" + _month page = load(url, "layoutCol2M") # Parse race info if page is not None: race_ids = parse_spn_rids(page) else: return {"status": "ERROR", "message": "There is no page: " + url} if len(race_ids) > 0: for rid in race_ids: collect(rid) else: return {"status": "ERROR", "message": "There is no page: " + url} return {"status": "SUCCESS", "message": "Start bulk collection process"}
self.totalWeight.setObjectName('totalWeight') font.setPointSize(13) self.totalWeight.setFont(font) self.totalWeight.setAlignment(Qt.AlignCenter) self.totalWeight.setText('') self.totalWeight.setStyleSheet('background-color: {0}; border: 1px solid black;'.format(color0)) # total cost of all products self.totalCost.setFixedSize(210, 40) font.setBold(False) self.totalCost.setObjectName('totalCost') font.setPointSize(13) self.totalCost.setFont(font) self.totalCost.setAlignment(Qt.AlignCenter) self.totalCost.setText('') self.totalCost.setStyleSheet('background-color: {0}; border: 1px solid black;'.format(color0)) if __name__ == '__main__': import sys from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) controller.load() config.mainFont = 'Century Gothic' editWindow = editwindow.EditWindow() window = MainWindow() print(type(windowObject)) print(type(editWindow)) window.show() sys.exit(app.exec_())
# -*- coding: utf-8 -*- from flask_migrate import MigrateCommand from flask_script import Manager from flask import Flask import controller # from flask_restful import Api from flask_login import LoginManager from flasgger import Swagger from db.postgres import ext app = Flask(__name__) app.config.from_json('%s/config.json' % app.root_path) login_manager = LoginManager() login_manager.session_protection = 'strong' swagger = Swagger(app) swagger.load_config(app) login_manager.init_app(app) ext.load(app) controller.load(app) manager = Manager(app) manager.add_command('db', MigrateCommand) # ======================== from models.mode_case import CaseModel if __name__ == '__main__': manager.run() else: application = app