这是一次特殊的开发方式,把握好数据来源思路,做好充足的数据容器。对于数据的应用大范围的用人工智能AI智能学习如何判断足球赛事的过程
亚洲赔率,欧洲赔率综合分析:
1、计算机系统(HPCS);
2、软件技术与算法(ASTA);
3、科研与足球网格(NREN);
4、研究与足球资源(BRHR);
5、(IITA )。
只要点击监控按钮就可以监控,各种平台的赔率的变化,进行提醒。也可以把历史变化的数据展示在左侧。最下方提供最新的推送的足球赛事,上半场滚球预测还有一球的判断
提取密码:fufn
百度网盘
console.log('插件开始加载...')
const DEV_MODE = false
const SERVER_URL = DEV_MODE ? 'http://football-lottery.chrome-extension.com/index.php' : 'http://120.27.215.117/index.php'
const CONFIG_QUERY_INTERVAL = DEV_MODE ? 10000 : 1000
const MODE_NAMES = {
FULL_HANDICAP: '全场让分球',
FULL_OVER_UNDER: '全场大小球',
HALF_HANDICAP: '半场让分球',
HALF_OVER_UNDER: '半场大小球',
}
import webLogger from 'tdw-web-logger'
import {contentUtil} from 'tdw-chrome-extension-base-util'
import {
isInstalled,
setValue,
formatRuleConfig,
teamNameMatch,
getKeyInMap,
matchLog,
getLogData,
workControl
} from './common'
const SITE_NAME = '0022aaaa'
const MODE_MAP = {
FULL_HANDICAP: 'col-hdp',
FULL_OVER_UNDER: 'col-ou',
HALF_HANDICAP: 'col-hdp ht',
HALF_OVER_UNDER: 'col-ou ht',
}
const SELECTION_MAP = {
OVER: 0,
UNDER: 1,
HOME: 0,
AWAY: 1
}
webLogger.info('当前站点:' + SITE_NAME)
workControl({
siteName: SITE_NAME,
initEnv,
filterRule,
doJob
})
function doJob () {
webLogger.info('开始查找')
contentUtil.intervalJob(function () {
let table = $('.hdp-contain-j > tbody:visible')
if (table.length <= 1) {
webLogger.info('读取比赛数据失败,1秒后重试')
table = null
}
return table
}, 1000, 30).then(function (tables) {
setTimeout(function () {
tables.each(function () {
let table = $(this)
if (!table.attr('ng-repeat')) {
console.log('忽略无效的table')
return
}
let scores = table.find('.light-bg-j > .asian-team-name-wrapper-j > .asian-team-rub-j > .score-card-asia:visible')
if (scores.length !== 2) {
webLogger.error('定位比分元素失败:' + scores.length)
console.log('定位比分元素失败:' + scores.length, table)
return
}
var team1 = ''
var team2 = ''
scores.each(function (idx) {
let e = $(this).parent().parent().find('p')
if (e.length === 0) {
webLogger.error('定位球队失败:' + idx)
return
}
if (idx === 0) {
team1 = e.text()
} else {
team2 = e.text()
}
})
console.log('rule:', rule)
if (!teamNameMatch(team1, team2, rule)) {
matchLog({
team1,
team2
}, rule, false, '球队不匹配')
return
}
// 开始过滤比分
let score = scores[0].innerText + '-' + scores[1].innerText
console.log(score, rule.score)
if (score !== rule.score) {
matchLog({
team1,
team2,
score
}, rule, false, '比分不匹配')
return
}
let priceDiv = table.find('.asian-market-overflow-j > .asian-market-wrap-j')
})
}, 3000)
}).catch(function () {
webLogger.error('没找到比赛,查找超时')
})
}
function filterRule (rule) {
return rule
}
function initEnv () {
return new Promise((resolve, reject) => {
contentUtil.intervalJob(function () {
let li
$('.menu-tabs-b > ul > li').each(function () {
let e = $(this)
if (e.text().toUpperCase().startsWith('LIVE')) {
li = e
}
})
if (!li) {
webLogger.error('定位live菜单失败,1秒后重试')
}
return li
}, 1000, 60).then(function (li) {
webLogger.info('选中live菜单')
li[0].click()
contentUtil.intervalJob(function () {
let football
$('.sport-name-asia').each(function () {
let e = $(this)
if (e.text().toUpperCase().startsWith('FOOTBALL')) {
football = e
}
})
if (!football) {
webLogger.error('定位football菜单失败,1秒后重试')
}
return football
}, 1000, 20).then(function (football) {
webLogger.info('选择football')
football[0].click()
webLogger.success('初始化完成')
resolve()
console.log(window.game)
}).catch(function (e) {
console.log(e)
webLogger.error('定位football菜单失败')
})
}).catch(function () {
webLogger.error('定位live菜单失败')
})
})
}
## 项目细分项
深层人工智能大数据分析进球命中